該頁面可以包含自動翻譯的文字。
在 C# 和 VB.NET 中將 PDF 轉換為圖像
有時您需要將 PDF 轉換為圖像。 例如,您可能需要從 PDF 建立縮圖或對某些 PDF 文件執行光學字元辨識 (OCR)。
您可以使用 Docotic.Pdf 庫 將 PDF 文件轉換為 C# 和 VB.NET 專案中的映像。 該庫是 100% 管理的,沒有外部依賴。 它不使用 System.Drawing.dll 和 GDI+ 進行 PDF 光柵化。 因此,您將在 Windows、Linux、macOS、iOS 和 Android 上獲得一致的輸出。
9.5.17664-dev 14,820 已通過 NuGet 總下載量 4,998,853該庫可在 NuGet 和我們的網站上找到。在 下載 C# .NET PDF 函式庫 頁面取得該資料庫和免費的限時許可證金鑰。
Docotic.Pdf 提供了許多 PDF 到影像轉換的選項。 它也可以渲染和列印PDF文件。 讓 我們看看如何使用 Docotic.Pdf 庫將 PDF 轉換為映像。
將 PDF 頁面儲存為 PNG、JPG 或 TIFF 影像
Docotic.Pdf 函式庫可讓您將 PDF 頁面轉換為 PNG、JPEG 或 TIFF 映像。 您可以將生成的圖像寫入流或檔案。 此 C# 程式碼片段將 PDF 頁面儲存為具有白色背景和 300x300 dpi 解析度的 PNG 圖像:
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 = ..;
options.Compression = ImageCompressionOptions.CreateJpeg();
相關的 C# 和 VB.NET 範例可在 GitHub 上找到。
.NET 中的 PDF 文件到多頁 TIFF
您可以使用 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 = ..;
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# 程式碼將 256x256 點區域的圖像保存在 PDF 頁面的左上角:
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 位元組)的記憶體來儲存中間未壓縮的 RGB 影像資料。 使 用 1024x1024 切片的切片渲染,您可以將未壓縮 RGB 影像資料的記憶體消耗限制為 12 Mb(= 1024 * 1024 * 3
- 300 / 72.0 位元組)。
請注意,平鋪 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 到映像轉換有疑問,請聯絡我們。