跳至頁尾內容
使用IRONPDF

HTML到PDF轉換器C#開源(.NET 庫比較)

在 C# 中將 PDF 轉換為圖像是很常見的。 您可能需要縮圖、網頁預覽,甚至是存檔副本。 使用 IronPDF,這個過程變得很簡單。 這要歸功於它的 RasterizeToImageFiles 方法,讓您只需幾行程式碼即可將 PDF 文件轉換為圖像文件,如 PNG 圖像、JPEG 圖像、TIFF 圖像或 BMP。

在本文中,我們將講解如何將 PDF 轉換為 PNG、JPG、TIFF 或 BMP。您將看到如何處理整個文件、特定頁範圍,甚至是作為 PDF 呈現的網頁。 最後,您將擁有一個穩健的工作流程,以在您的 .NET 專案中 生成高品質的圖像

Why Convert PDF Documents to Images in C#?

將 PDF 頁面轉換為圖像在現代的 .NET Framework 或 .NET 應用中有實際應用。文件管理系統需要縮圖以便快速視覺導航,而網頁應用則利用圖像格式來提升瀏覽器相容性和加速載入速度。

此外,將 PDF 轉換為圖像確保您的 PDF 在缺乏 PDF 程式庫支援的任何平台上顯示正確。 無論您處理的是多個頁面還是單個頁面,IronPDF 僅需少數程式碼行即可完成此過程,無需擔心錯誤或複雜的呈現。

IronPDF入門

首先,在 Visual Studio 中建立一個新的 C# 主控台應用並透過 NuGet 套件管理器安裝 IronPDF:

Install-Package IronPdf

在 C# 中如何將 PDF 轉換為圖像:圖 1 - 通過 NuGet 套件管理器控制台安裝 IronPDF

IronPDF 支援 .NET Framework、.NET Core 和 .NET 5+,確保您的 PDF 到圖像的工作流程與您所使用的任何版本的 .NET 相容。 安裝後,您可以開始在程式中將 PDF 頁面轉換為圖像文件。

如何將 PDF 頁面轉換為圖像文件?

轉換 PDF 為圖像的最簡單方法是載入文件並呼叫 RasterizeToImageFiles 方法:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Load an existing PDF document
        var pdfDocument = PdfDocument.FromFile("report.pdf");
        // Convert all pages to PNG images
        pdfDocument.RasterizeToImageFiles(@"C:\images\page_*.png");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Load an existing PDF document
        var pdfDocument = PdfDocument.FromFile("report.pdf");
        // Convert all pages to PNG images
        pdfDocument.RasterizeToImageFiles(@"C:\images\page_*.png");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main(args As String())
        ' Load an existing PDF document
        Dim pdfDocument = PdfDocument.FromFile("report.pdf")
        ' Convert all pages to PNG images
        pdfDocument.RasterizeToImageFiles("C:\images\page_*.png")
    End Sub
End Class
$vbLabelText   $csharpLabel

這段程式碼將 PDF 的每一頁轉換為一個單獨的 PNG 文件。文件名模式中的星號 (*) 會自動被頁碼替換。 為了妥善管理資源,請將 PdfDocument 包含在 using 語句中以確保釋放。

執行程式碼後,我們可以在輸出目錄中看到,即使我們的 PDF 內含多個頁面,我們的程式碼未指定要轉換的頁面,因此每頁都已被儲存為一個獨立的圖像文件:

在 C# 中如何將 PDF 轉換為圖像:圖 2 - 把所有頁面都轉換為圖像的範例

為了轉換指定頁面,請指定頁碼範圍:

// Specify the page indexes for conversion
int[] pageIndexes = new[] { 0, 1, 2 };
// Convert pages 1-3 to JPG images
pdfDocument.RasterizeToImageFiles(@"C:\images\page_*.jpg", pageIndexes);
// Specify the page indexes for conversion
int[] pageIndexes = new[] { 0, 1, 2 };
// Convert pages 1-3 to JPG images
pdfDocument.RasterizeToImageFiles(@"C:\images\page_*.jpg", pageIndexes);
' Specify the page indexes for conversion
Dim pageIndexes As Integer() = {0, 1, 2}
' Convert pages 1-3 to JPG images
pdfDocument.RasterizeToImageFiles("C:\images\page_*.jpg", pageIndexes)
$vbLabelText   $csharpLabel

請注意,頁面索引從 0 開始,因此第一頁的 pageIndex = 0。

在 C# 中如何將 PDF 轉換為圖像:圖 3 - 指定的 PDF 頁面轉換為圖像

如何控制圖像質量?

圖像質量直接影響文件大小和視覺清晰度。 IronPDF 允許您透過 DPI (每英寸點數) 設定控制這一點:

// High-quality conversion at 300 DPI
pdfDocument.RasterizeToImageFiles(@"C:\images\high_quality_*.png", DPI: 300);
// Web-optimized at 150 DPI
pdfDocument.RasterizeToImageFiles(@"C:\images\web_*.jpg", DPI: 150);
// High-quality conversion at 300 DPI
pdfDocument.RasterizeToImageFiles(@"C:\images\high_quality_*.png", DPI: 300);
// Web-optimized at 150 DPI
pdfDocument.RasterizeToImageFiles(@"C:\images\web_*.jpg", DPI: 150);
' High-quality conversion at 300 DPI
pdfDocument.RasterizeToImageFiles("C:\images\high_quality_*.png", DPI:=300)
' Web-optimized at 150 DPI
pdfDocument.RasterizeToImageFiles("C:\images\web_*.jpg", DPI:=150)
$vbLabelText   $csharpLabel

預設的 96 DPI 適用於基本預覽,但增加為 150-300 DPI 可得到列印品質的圖像。 較高的 DPI 值會產生更清晰的圖像,但文件大小也會更大。

在 C# 中如何將 PDF 轉換為圖像:圖 4 - 高品質轉換的 PDF 和原件對比

支援哪些圖像格式?

IronPDF 通過 ImageType 參數支援多種圖像格式:

// Convert to different formats
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.png", IronPdf.Imaging.ImageType.Png);
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.jpg", IronPdf.Imaging.ImageType.Jpeg);
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.tiff", IronPdf.Imaging.ImageType.Tiff);
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.bmp", IronPdf.Imaging.ImageType.Bitmap);
// Convert to different formats
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.png", IronPdf.Imaging.ImageType.Png);
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.jpg", IronPdf.Imaging.ImageType.Jpeg);
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.tiff", IronPdf.Imaging.ImageType.Tiff);
pdfDocument.RasterizeToImageFiles(@"C:\images\output_*.bmp", IronPdf.Imaging.ImageType.Bitmap);
' Convert to different formats
pdfDocument.RasterizeToImageFiles("C:\images\output_*.png", IronPdf.Imaging.ImageType.Png)
pdfDocument.RasterizeToImageFiles("C:\images\output_*.jpg", IronPdf.Imaging.ImageType.Jpeg)
pdfDocument.RasterizeToImageFiles("C:\images\output_*.tiff", IronPdf.Imaging.ImageType.Tiff)
pdfDocument.RasterizeToImageFiles("C:\images\output_*.bmp", IronPdf.Imaging.ImageType.Bitmap)
$vbLabelText   $csharpLabel

選擇 PNG 用於需要透明背景的圖像,選擇 JPEG 用於照片和網頁內容,選擇 TIFF 用於存檔,選擇 BMP 當需要未壓縮的圖像時。 IronPDF API 參考提供了所有支援的 ImageType 選項詳細資訊。

如何處理進階情境?

IronPDF 擅長處理複雜的 PDF 到圖像轉換情境。 其中一個特別有用的功能是通過 PDF 呈現直接將網頁轉換為圖像。 有關更多 HTML 轉換選項,請查看 HTML 到 PDF 轉換指南

// Convert a webpage to images
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument webPdf = renderer.RenderUrlAsPdf("https://apple.com");
webPdf.RasterizeToImageFiles(@"C:\images\webpage_*.png", DPI: 200);
// Convert a webpage to images
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument webPdf = renderer.RenderUrlAsPdf("https://apple.com");
webPdf.RasterizeToImageFiles(@"C:\images\webpage_*.png", DPI: 200);
Imports IronPdf

' Convert a webpage to images
Dim renderer As New ChromePdfRenderer()
Dim webPdf As PdfDocument = renderer.RenderUrlAsPdf("https://apple.com")
webPdf.RasterizeToImageFiles("C:\images\webpage_*.png", DPI:=200)
$vbLabelText   $csharpLabel

這種方法完美捕捉動態網頁內容,保留所有樣式和由 JavaScript 呈現的元素。

對於批次處理多個 PDF,實現一個簡單的迴圈:

string[] pdfFiles = Directory.GetFiles(@"C:\pdfs", "*.pdf");
foreach (string pdfPath in pdfFiles)
{
    using (var pdf = PdfDocument.FromFile(pdfPath))
    {
        string outputPath = Path.Combine(@"C:\images", 
            Path.GetFileNameWithoutExtension(pdfPath) + "_*.png");
        pdf.RasterizeToImageFiles(outputPath);
    }
}
string[] pdfFiles = Directory.GetFiles(@"C:\pdfs", "*.pdf");
foreach (string pdfPath in pdfFiles)
{
    using (var pdf = PdfDocument.FromFile(pdfPath))
    {
        string outputPath = Path.Combine(@"C:\images", 
            Path.GetFileNameWithoutExtension(pdfPath) + "_*.png");
        pdf.RasterizeToImageFiles(outputPath);
    }
}
Imports System.IO

Dim pdfFiles As String() = Directory.GetFiles("C:\pdfs", "*.pdf")
For Each pdfPath As String In pdfFiles
    Using pdf = PdfDocument.FromFile(pdfPath)
        Dim outputPath As String = Path.Combine("C:\images", Path.GetFileNameWithoutExtension(pdfPath) & "_*.png")
        pdf.RasterizeToImageFiles(outputPath)
    End Using
Next
$vbLabelText   $csharpLabel

結論

IronPDF 讓您在 C# 中輕鬆將 PDF 文件轉換為圖像文件。 無論您是在建立縮略圖、PNG 圖像、JPEG 圖像,或是處理多個頁面的 TIFF 轉換,RasterizeToImageFiles 方法都能處理一切。

您可以自訂輸出格式、透過 DPI 設置控制圖像質量,甚至將作為 PDF 呈現的網頁轉換為圖像,所有這些都無需複雜的設定。如需更多進階的 PDF 特性,查看 IronPDF 的豐富文件,其中包含範例程式碼和說明,幫助您探索 IronPDF 的全部功能。

準備好在您的 C# 應用中實現 PDF 到圖像的轉換了嗎? 開始免費試用,享受無限制的轉換和優先支援。

常見問題

如何使用 C# 將 PDF 轉換為圖像?

您可以使用 IronPDF 程式庫,該程式庫提供 RasterizeToImageFiles 方法,能夠將 PDF 文件轉換為包括 PNG、JPEG、TIFF 和 BMP 在內的各種圖像格式,僅需最少的程式碼量。

IronPDF 支持哪些圖像格式的 PDF 轉換?

IronPDF 支持將 PDF 文件轉換為包括 PNG、JPEG、TIFF 和 BMP 在內的多種圖像格式。

為什麼我需要在 C# 中將 PDF 轉換為圖像?

將 PDF 轉換為圖像可以用於製作縮略圖、網頁預覽或存檔用途,其中圖像比 PDF 更合適。

IronPDF 是否易於用於將 PDF 轉換為圖像?

是的,IronPDF 被設計為對開發者友好,使您能夠通過其 RasterizeToImageFiles 函式僅用幾行程式碼就能將 PDF 轉換為圖像。

IronPDF 是否支持將多頁 PDF 轉換為圖像?

是的,IronPDF 能夠處理多頁 PDF 文件,允許您將每一頁轉換為一個獨立的圖像檔案。

IronPDF 能將 PDF 文件轉換為高解析度圖像嗎?

IronPDF 允許您指定輸出圖像的解析度,因此您可以從 PDF 文件生成高解析度圖像。

IronPDF與.NET 10相容嗎?

是的,IronPDF 完全相容 .NET 10 專案,支持所有典型的功能,如 PDF 轉圖像轉換、HTML 渲染及 RasterizeToImageFiles API,直接可在 .NET 10 應用程式中使用而無需工作區。

IronPDF 支持哪些 .NET 版本及平台的 PDF 轉圖像轉換?

IronPDF 支持 .NET 10、9、8、7、6、5、.NET Core、.NET Standard 以及 .NET Framework。它可以在 Windows、macOS 和 Linux 平台上使用,包括容器化環境。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話