Method SavePagesAsMultipageTiff
SavePagesAsMultipageTiff(string, string, PdfRenderOptions, IProgress<PdfRenderProgressEventArgs>, CancellationToken)
Renders the selected pages and packs them into a single multi-page TIFF file.
public static void SavePagesAsMultipageTiff(string inputPath, string outputPath, PdfRenderOptions options = null, IProgress<PdfRenderProgressEventArgs> progress = null, CancellationToken cancellationToken = default)
Parameters
inputPathstringPath to the source PDF.
outputPathstringDestination multi-page TIFF file path.
optionsPdfRenderOptionsRender options.
progressIProgress<PdfRenderProgressEventArgs>Optional progress callback fired after each rendered page (before the final write).
cancellationTokenCancellationTokenCancels the operation between pages.
Examples
using LMKit.Document.Pdf;
using LMKit.Media.Image;
// Pack a scanned PDF into a single archival multi-page TIFF.
PdfRenderOptions options = new()
{
Zoom = 300.0 / 72.0,
PixelFormat = ImagePixelFormat.GRAY8,
};
PdfRenderer.SavePagesAsMultipageTiff(
"scan.pdf", "archive.tif", options);
Remarks
Memory note. The underlying native multi-page TIFF writer requires every rendered page in memory simultaneously, because it emits a single shared file header that references all image directories. For very large PDFs prefer SavePagesAsTiffs(string, string, PdfRenderOptions, string, IProgress<PdfRenderProgressEventArgs>, CancellationToken) (one file per page) and assemble externally, or render at lower zoom / GRAY8 to reduce per-page bytes.
SavePagesAsMultipageTiff(string, Stream, PdfRenderOptions, IProgress<PdfRenderProgressEventArgs>, CancellationToken)
Renders the selected pages, packs them into a multi-page TIFF, and writes it to a stream.
public static void SavePagesAsMultipageTiff(string inputPath, Stream outputStream, PdfRenderOptions options = null, IProgress<PdfRenderProgressEventArgs> progress = null, CancellationToken cancellationToken = default)
Parameters
inputPathstringPath to the source PDF.
outputStreamStreamWritable destination stream.
optionsPdfRenderOptionsRender options.
progressIProgress<PdfRenderProgressEventArgs>Optional progress callback fired after each rendered page.
cancellationTokenCancellationTokenCancels the operation between pages.
Examples
using System.IO;
using LMKit.Document.Pdf;
// Stream the archival TIFF straight to blob storage without
// touching the local file system.
using MemoryStream output = new();
PdfRenderer.SavePagesAsMultipageTiff("scan.pdf", output);
byte[] payload = output.ToArray();
Remarks
Internally writes to a temporary file then streams the bytes, because the native multi-page TIFF writer only targets a file path.