該頁面可以包含自動翻譯的文字。
將 PDF 轉為影像 in C# and VB.NET
有些情況下您需要將 PDF 轉換為影像。例如,您可能需要從 PDF 建立縮圖,或對某些 PDF 文件執行光學字元辨識(OCR)。
您可以在 C# 與 VB.NET 專案中使用 Docotic.Pdf 程式庫 將 PDF 文件轉換為影像。該程式庫 100% 受管理,且沒有外部相依項。它不會使用 System.Drawing.dll 和 GDI+ 進行 PDF 光柵化。因此,您會在 Windows、Linux、macOS、iOS 和 Android 上得到一致的輸出。
該程式庫可從 NuGet 和我們的網站取得。請在 下載 C# .NET PDF 程式庫 頁面取得該程式庫和免費的限時授權金鑰。
Docotic.Pdf 提供許多 PDF 轉影像選項。而且它也可以 轉譯並列印 PDF 文件。讓我們看看如何使用 Docotic.Pdf 程式庫將 PDF 轉換為影像。

將 PDF 頁面儲存為 PNG、JPG 或 TIFF 影像
Docotic.Pdf 程式庫可讓您將 PDF 頁面轉換為 PNG、JPEG 或 TIFF 影像。您可以將結果影像寫入串流或檔案。此 C# 程式片段會將 PDF 頁面儲存為 PNG 影像,背景為白色,解析度為 300x300 dpi:
using BitMiracle.Docotic.Pdf;
using var pdf = new PdfDocument("your_document.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
options.HorizontalResolution = 300;
options.VerticalResolution = 300;
for (int i = 0; i < pdf.PageCount; ++i)
pdf.Pages[i].Save($"page_{i}.png", options);
您可以透過 PdfDrawOptions.Compression 屬性,指示程式庫改為產生 JPEG 或 TIFF 影像,而不是 PNG。下列程式片段示範如何切換為產生 JPEG 影像:
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreateJpeg();
相關的 C# 與 VB.NET 範例可在 GitHub 上 取得。
將 PDF 文件轉換為多頁 TIFF in .NET
您可以使用 PdfDocument.SaveAsTiff 方法,將整份文件儲存為多頁 TIFF 影像。以下是將 PDF 轉換為 TIFF 的 C# 範例:
using var pdf = new PdfDocument("document.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
pdf.SaveAsTiff("result.tiff", options);
從 GitHub 下載並試用 將 PDF 儲存為多頁 TIFF 範例程式碼。那裡也提供 C# 與 VB.NET 版本。
從 PDF 建立縮圖
借助 Docotic.Pdf 程式庫,您可以從 PDF 頁面產生縮圖。此 C# 範例會從指定 PDF 的第一頁建立 200x200 像素的縮圖,並將縮圖寫入記憶體串流:
using var pdf = new PdfDocument("document.pdf");
PdfDrawOptions options = PdfDrawOptions.CreateFitSize(new PdfSize(200, 200), false);
options.BackgroundColor = new PdfGrayColor(100);
using var stream = new MemoryStream();
pdf.Pages[0].Save(stream, options);
您也可以使用 PdfDrawOptions.CreateFitWidth 或 PdfDrawOptions.CreateFitHeight 方法,產生指定寬度或高度的縮圖影像。
在 .NET 中將 PDF 轉換為雙色調或灰階影像
該程式庫可以將 PDF 文件轉換為雙色調(黑白)TIFF 影像。此範例示範如何在 C# 中從 PDF 文件產生雙色調 TIFF 影像:
using var pdf = new PdfDocument("colored.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
options.Compression = ImageCompressionOptions.CreateTiff().SetBitonal();
pdf.SaveAsTiff("bitonal.tiff", options);
使用 TiffImageCompressionOptions.SetBitonalThreshold 方法時,也可以指定閾值層級。閾值層級定義如何將灰階、RGB 或 CMYK 色彩轉換為黑白。
Docotic.Pdf 也支援將 PDF 轉換為灰階 PNG、JPG 或 TIFF 影像。只要像下列程式片段一樣使用 PngImageCompressionOptions.SetGrayscale、JpegImageCompressionOptions.SetGrayscale、TiffImageCompressionOptions.SetGrayscale 方法之一即可:
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreatePng().SetGrayscale();
縮放 PDF
PdfDrawOptions.CreateZoom 方法可讓您取得具有指定縮放比例的 PDF 頁面影像。此 C# 範例會將 PDF 頁面轉換為 400% 縮放的影像:
using var pdf = new PdfDocument(@"document.pdf");
PdfDrawOptions options = PdfDrawOptions.CreateZoom(400);
pdf.Pages[0].Save("zoomed.png", options);
部分 PDF 轉影像轉譯
您可能只需要將 PDF 頁面的一部分轉換為影像。例如,將大型 PDF 頁面切分為圖塊。或裁剪某些不需要的內容。
此 C# 程式碼會將 PDF 頁面左上角 256x256 點區域的影像儲存下來:
using var pdf = new PdfDocument("large.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
PdfPage page = pdf.Pages[0];
PdfBox cropBoxBefore = page.CropBox;
page.CropBox = new PdfBox(0, cropBoxBefore.Height - 256, 256, cropBoxBefore.Height);
page.Save("part.png", options);
page.CropBox = cropBoxBefore;
圖塊式 PDF 轉影像轉譯
Docotic.Pdf 內建支援將 PDF 分塊轉譯為 TIFF。當您需要以固定的記憶體量處理大型 PDF 頁面時,這種方法很有用。
例如,您的 PDF 文件包含一個大小為 10000x10000 點的頁面。以 300 DPI 解析度將此頁面一般轉換為 RGB 影像,需要超過 1 Gb (= 10000 * 10000 * 3 * 300 / 72.0 bytes) 的記憶體來存放中間未壓縮的 RGB 影像資料。使用 1024x1024 圖塊的分塊轉譯,您可以將未壓縮 RGB 影像資料的記憶體消耗限制在 12 Mb (= 1024 * 1024 * 3 * 300 / 72.0 bytes)。
請注意,圖塊式 PDF 轉影像轉譯比一般轉換慢。對每個圖塊,程式庫都需要處理 PDF 頁面的所有操作,即使其中某些操作不影響目前圖塊。
此 C# 程式片段示範如何使用 512x512 圖塊將 PDF 轉換為影像:
using var pdf = new PdfDocument("large.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreateTiff().SetTileSize(512, 512);
options.BackgroundColor = new PdfGrayColor(100);
options.HorizontalResolution = 300;
options.VerticalResolution = 300;
pdf.Pages[0].Save("tiled.tiff", options);
結論
Docotic.Pdf 程式庫 在 .NET 中提供多種 PDF 轉影像選項。您可以將 PDF 頁面轉換為完整大小或縮圖影像,格式包括 PNG、TIFF 和 JPEG。您也可以將 PDF 文件儲存為多頁 TIFF 檔案。該程式庫也可以產生雙色調和灰階影像。
從 GitHub 下載並試用 PDF 轉影像 範例。
如果您對 PDF 轉影像有任何問題,請 聯絡我們。