跳過到頁腳內容
使用IRONPDF

如何在C#中將PDF轉換為圖像

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

本文將詳細介紹如何將 PDF 檔案轉換為 PNG、JPG、TIFF 或 BMP 格式。您將了解如何處理整個文件、特定頁面範圍,甚至是渲染為 PDF 的網頁。 到最後,你將擁有一個可靠的工作流程,可以在 .NET 專案中從 PDF 產生高品質影像

Why Convert PDF Documents to Images in C#?

將 PDF 頁面轉換為映像在現代 .NET Framework 或 .NET 應用程式中具有實際應用價值。文件管理系統需要縮圖來實現快速的視覺導航,而 Web 應用程式則可以受益於圖像格式,從而獲得更好的瀏覽器相容性和更快的載入速度。

此外,將 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 - 將 PDF 轉換為圖像的範例(轉換所有頁面)

若要轉換特定頁面,請指定頁面範圍:

// 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 與原始 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 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

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