該頁面可以包含自動翻譯的文字。

在 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 上獲得一致的輸出。

Docotic.Pdf 函式庫 9.3.17036-dev 回歸測試 14,665 已通過 NuGet 總下載量 4,191,515

您可以下載該庫的二進位檔案或使用其NuGet套件。 若要在沒有 評估模式限制的情況下試用 Docotic.Pdf,您可以使用此處的表格 取得免費的 限時授權金鑰。

Docotic.Pdf 提供了許多 PDF 到影像轉換的選項。 它也可以渲染和列印PDF文件。 讓 我們看看如何使用 Docotic.Pdf 庫將 PDF 轉換為映像。

在 C# 和 VB.NET 中將 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.CreateFitWidthPdfDrawOptions.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 到映像轉換有疑問,請聯絡我們