跳過到頁腳內容
使用IRONPDF

在C#中使用IronPDF將PDF轉換為JPG

使用 IronPDF 的 RasterizeToImageFiles 方法,只需 3 行程式碼即可在 C# 中將 PDF 檔案轉換為 JPG 影像。 本教學將向您展示如何提取單一頁面、批次處理整個文件以及調整品質設定以獲得專業的影像輸出。

借助IronPDF 的渲染引擎,在 C# 中將 PDF 檔案轉換為 JPG 影像變得非常簡單。 無論您是產生縮圖、建立圖像預覽,還是將整個頁面轉換為網頁顯示格式,本教學都將示範如何使用簡潔的程式碼產生高品質的 JPEG 圖像。 無論你是建立桌面應用程式還是現代.NET項目,該過程都適用。

VB .NET開發人員可以使用幾乎相同的模式應用相同的IronPDF API-本指南中的所有範例都使用 C# 和.NET 10 頂級語句,但底層方法呼叫也可以直接轉換為 VB .NET語法。

如何只用 3 行程式碼將 PDF 檔案轉換為 JPG 圖片?

在 C# 中,將 PDF 轉換為 JPG 的最直接方法是使用 IronPDF 的RasterizeToImageFiles 方法。 此方法可處理整個轉換過程,將 PDF 的每一頁轉換為單獨的影像文件,並可自訂品質設定。 除了 JPG 格式外,格式選項還包括 PNG、BMP 和 TIFF,以滿足不同的使用情境。 該庫的Chrome 渲染引擎可確保準確的視覺再現。

using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("input.pdf");

// Convert PDF to JPG images with default settings
pdf.RasterizeToImageFiles("output_page_*.jpg");

// The * wildcard creates numbered files for each page
Console.WriteLine("PDF pages converted to JPG successfully!");
using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("input.pdf");

// Convert PDF to JPG images with default settings
pdf.RasterizeToImageFiles("output_page_*.jpg");

// The * wildcard creates numbered files for each page
Console.WriteLine("PDF pages converted to JPG successfully!");
Imports IronPdf

' Load the PDF document
Dim pdf As PdfDocument = PdfDocument.FromFile("input.pdf")

' Convert PDF to JPG images with default settings
pdf.RasterizeToImageFiles("output_page_*.jpg")

' The * wildcard creates numbered files for each page
Console.WriteLine("PDF pages converted to JPG successfully!")
$vbLabelText   $csharpLabel

這段程式碼示範了基本的轉換模式。 FromFile 方法將您的 PDF 載入到記憶體中,而 RasterizeToImageFiles 執行轉換。 輸出檔案名稱中的星號 (*) 用作佔位符,自動為每一頁產生順序編號的 JPG 檔案。

系統內部處理複雜的渲染,使用 IronPDF 基於 Chromium 的引擎,以確保像素級完美的渲染效果。 該引擎保留了來源文件中的 CSS 樣式和JavaScript渲染。 對於需要非同步操作的應用, IronPDF也支援多執行緒產生模式。

輸入的PDF檔案是什麼樣的?

PDF 文件檢視器以 25% 的縮放比例顯示一篇維基百科文章,文章包含多個頁面,採用標準的維基百科格式,以雙頁展開佈局顯示文字、圖像和導航元素

輸出的JPG檔案是如何命名和組織的?

七個轉換後的JPG文件,將各個PDF頁麵顯示為單獨的圖像,按順序編號為output_page_1.jpg至output_page_7.jpg,每個文件都包含完整的頁面內容,並保留了文字和圖像格式。

安裝該庫需要哪些步驟?

在.NET專案中實作 PDF 到 JPG 轉換之前,您需要透過NuGet安裝IronPDF 。 該程式庫可與.NET Framework和現代.NET版本整合。 它支援 Windows、 Linux和 macOS 環境,也適用於Docker 容器

執行以下命令之一,將IronPDF新增到您的專案中:

Install-Package IronPdf
Install-Package IronPdf
SHELL
dotnet add package IronPdf
dotnet add package IronPdf
SHELL

或者,使用 Visual Studio 的套件管理器 UI 搜尋"IronPDF"並直接安裝。 安裝完成後,新增 using IronPdf; 語句即可存取所有轉換功能。 該庫會自動處理依賴項,包括影像生成所需的渲染引擎元件。 此設定適用於ASP.NET應用程式、桌面程式和Azure 雲端部署

如何轉換特定的PDF頁面以節省時間和儲存空間?

通常情況下,您需要選擇性地轉換 PDF 頁面,而不是處理整個文件。 當您的應用程式需要特定的頁面圖像進行上傳或預覽時,這將非常有用。 IronPDF提供靈活的方法來處理單一頁面或自訂範圍。 頁面操作功能不僅限於簡單的轉換,還支援複雜的文件工作流程:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("input.pdf");

// Convert only the first page to JPEG
int[] pageIndexes = { 0 }; // Page indexes start at 0
pdf.RasterizeToImageFiles("first_page_*.jpg", pageIndexes, IronPdf.Imaging.ImageType.Jpeg);

// Convert specific page range (pages 2-5)
int[] rangeIndexes = { 1, 2, 3, 4 };
pdf.RasterizeToImageFiles("selected_*.jpg", rangeIndexes);
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("input.pdf");

// Convert only the first page to JPEG
int[] pageIndexes = { 0 }; // Page indexes start at 0
pdf.RasterizeToImageFiles("first_page_*.jpg", pageIndexes, IronPdf.Imaging.ImageType.Jpeg);

// Convert specific page range (pages 2-5)
int[] rangeIndexes = { 1, 2, 3, 4 };
pdf.RasterizeToImageFiles("selected_*.jpg", rangeIndexes);
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("input.pdf")

' Convert only the first page to JPEG
Dim pageIndexes As Integer() = {0} ' Page indexes start at 0
pdf.RasterizeToImageFiles("first_page_*.jpg", pageIndexes, IronPdf.Imaging.ImageType.Jpeg)

' Convert specific page range (pages 2-5)
Dim rangeIndexes As Integer() = {1, 2, 3, 4}
pdf.RasterizeToImageFiles("selected_*.jpg", rangeIndexes)
$vbLabelText   $csharpLabel

此範例展示如何將第一頁提取為 JPEG 文件,然後示範如何轉換特定範圍。 頁面索引從零開始,因此可以輕鬆選擇要處理的特定內容。 當處理只需要轉換特定部分的大型 PDF 文件時,這種方法非常有效。 該庫還支援轉換前的頁面旋轉和變換。

四個轉換後的PDF頁面以單獨的JPG檔案形式顯示,分別命名為selected_1.jpg至selected_4.jpg,每個檔案顯示不同的文件內容,文字和影像在影像轉換過程中均完整保留。

哪些影像品質選項能達到專業效果?

控制輸出品質會直接影響檔案大小和視覺清晰度。 IronPDF透過配置選項提供對 JPEG 品質和解析度的精確控制。 該庫支援多種圖像格式,並提供壓縮設定以獲得最佳效果。 了解 DPI 設定有助於在檔案大小和視覺保真度之間取得適當的平衡:

using IronPdf;
using IronSoftware.Drawing;

PdfDocument pdf = PdfDocument.FromFile("document.pdf");

// 1. Creating high-quality images for print at 300 DPI
AnyBitmap[] images = pdf.ToBitmapHighQuality(300, false);

int pageCount = 1;
foreach (AnyBitmap image in images)
{
    string outputPath = $"high_quality_{pageCount}.jpg";
    image.SaveAs(outputPath);
    pageCount++;
}

// 2. For web thumbnails, use lower DPI settings
pdf.RasterizeToImageFiles("thumbnail_*.jpg", IronPdf.Imaging.ImageType.Jpeg, 150, true);
using IronPdf;
using IronSoftware.Drawing;

PdfDocument pdf = PdfDocument.FromFile("document.pdf");

// 1. Creating high-quality images for print at 300 DPI
AnyBitmap[] images = pdf.ToBitmapHighQuality(300, false);

int pageCount = 1;
foreach (AnyBitmap image in images)
{
    string outputPath = $"high_quality_{pageCount}.jpg";
    image.SaveAs(outputPath);
    pageCount++;
}

// 2. For web thumbnails, use lower DPI settings
pdf.RasterizeToImageFiles("thumbnail_*.jpg", IronPdf.Imaging.ImageType.Jpeg, 150, true);
Imports IronPdf
Imports IronSoftware.Drawing

Dim pdf As PdfDocument = PdfDocument.FromFile("document.pdf")

' 1. Creating high-quality images for print at 300 DPI
Dim images As AnyBitmap() = pdf.ToBitmapHighQuality(300, False)

Dim pageCount As Integer = 1
For Each image As AnyBitmap In images
    Dim outputPath As String = $"high_quality_{pageCount}.jpg"
    image.SaveAs(outputPath)
    pageCount += 1
Next

' 2. For web thumbnails, use lower DPI settings
pdf.RasterizeToImageFiles("thumbnail_*.jpg", IronPdf.Imaging.ImageType.Jpeg, 150, True)
$vbLabelText   $csharpLabel

此程式碼範例展示如何使用兩種品質設定將 PDF 頁面轉換為圖像。 第一種方法透過呼叫 pdf.ToBitmapHighQuality(300, false) 來產生用於列印的高品質影像。 這樣可以以 300 DPI 渲染頁面,並返回內存中的 AnyBitmap 對象,因此需要循環來保存每個圖像。 點陣圖渲染能夠保持精確的細節,滿足專業印刷的需求。

相較之下,第二種方法使用 pdf.RasterizeToImageFiles() 快速產生 150 DPI 的網頁縮圖。 較低的DPI和較高的畫質可以帶來更好的照片內容壓縮效果。 對於灰階轉換,還有其他最佳化選項可用。

如何有效率地處理整個PDF文件?

當您需要轉換整個 PDF 檔案時, IronPDF會自動處理多頁文件。 以下範例處理所有頁面,同時建立一個有條理的輸出目錄。 對於大型文檔,批次處理可以保持系統響應速度:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("manual.pdf");

// Create output directory if needed
string outputDir = "converted_images";
if (!Directory.Exists(outputDir))
{
    Directory.CreateDirectory(outputDir);
}

// Convert all pages with custom naming
string outputPath = Path.Combine(outputDir, "page_*.jpg");
pdf.RasterizeToImageFiles(outputPath);

Console.WriteLine($"Converted {pdf.PageCount} pages to JPG format");
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("manual.pdf");

// Create output directory if needed
string outputDir = "converted_images";
if (!Directory.Exists(outputDir))
{
    Directory.CreateDirectory(outputDir);
}

// Convert all pages with custom naming
string outputPath = Path.Combine(outputDir, "page_*.jpg");
pdf.RasterizeToImageFiles(outputPath);

Console.WriteLine($"Converted {pdf.PageCount} pages to JPG format");
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("manual.pdf")

' Create output directory if needed
Dim outputDir As String = "converted_images"
If Not Directory.Exists(outputDir) Then
    Directory.CreateDirectory(outputDir)
End If

' Convert all pages with custom naming
Dim outputPath As String = Path.Combine(outputDir, "page_*.jpg")
pdf.RasterizeToImageFiles(outputPath)

Console.WriteLine($"Converted {pdf.PageCount} pages to JPG format")
$vbLabelText   $csharpLabel

這段程式碼可以自動處理文件轉換,並為產生的 JPEG 影像建立一個有序的輸出目錄。 無論是轉換兩頁備忘錄或一百頁報告,流程都適用。 透過 IronPDF 的渲染,每一頁都會變成單獨的 JPG 文件,保持原始佈局。 視窗設定可確保在不同頁面尺寸下正確縮放。

對於包含多種字體、特殊字元或國際語言的文檔,渲染引擎能夠準確地保留格式。 該庫在轉換過程中處理嵌入式影像和向量圖形。 處理受密碼保護的 PDF 檔案時,正確的身份驗證可以實現轉換存取權限。

記憶體和效能優化方面有哪些需要改進的地方?

為了在處理大型 PDF 文件時獲得更好的效能,請考慮以下記憶體管理方法。 IronPDF大部分最佳化工作都在內部完成,但適當的資源處置可確保穩定運作。 該庫支援非同步操作,以提高 UI 應用程式的響應速度:

using IronPdf;

// Use using statement for automatic disposal
using (PdfDocument pdf = PdfDocument.FromFile("large_file.pdf"))
{
    int batchSize = 10;
    int pageCount = pdf.PageCount;

    for (int i = 0; i < pageCount; i += batchSize)
    {
        int endIndex = Math.Min(i + batchSize - 1, pageCount - 1);
        var batchPages = new List<int>();

        for (int j = i; j <= endIndex; j++)
        {
            batchPages.Add(j);
        }

        pdf.RasterizeToImageFiles($"batch_{i}_*.jpg", batchPages.ToArray());
    }
} // Automatically disposes resources
using IronPdf;

// Use using statement for automatic disposal
using (PdfDocument pdf = PdfDocument.FromFile("large_file.pdf"))
{
    int batchSize = 10;
    int pageCount = pdf.PageCount;

    for (int i = 0; i < pageCount; i += batchSize)
    {
        int endIndex = Math.Min(i + batchSize - 1, pageCount - 1);
        var batchPages = new List<int>();

        for (int j = i; j <= endIndex; j++)
        {
            batchPages.Add(j);
        }

        pdf.RasterizeToImageFiles($"batch_{i}_*.jpg", batchPages.ToArray());
    }
} // Automatically disposes resources
Imports IronPdf

' Use Using block for automatic disposal
Using pdf As PdfDocument = PdfDocument.FromFile("large_file.pdf")
    Dim batchSize As Integer = 10
    Dim pageCount As Integer = pdf.PageCount

    For i As Integer = 0 To pageCount - 1 Step batchSize
        Dim endIndex As Integer = Math.Min(i + batchSize - 1, pageCount - 1)
        Dim batchPages As New List(Of Integer)()

        For j As Integer = i To endIndex
            batchPages.Add(j)
        Next

        pdf.RasterizeToImageFiles($"batch_{i}_*.jpg", batchPages.ToArray())
    Next
End Using ' Automatically disposes resources
$vbLabelText   $csharpLabel

這種方法將大型轉換任務分解成可管理的小塊,防止記憶體使用過多。 using 語句確保正確清理資源,同時批次處理可維持處理大量文件的效能。 對於數百頁的 PDF 文件,這種方法可以顯著提高系統穩定性。 IronPDF性能指南涵蓋了應對高負載的其他技巧。

使用Azure FunctionsAWS Lambda時,特定的配置可以提高雲端效能。 對於 Linux 部署而言,記憶體管理尤其重要。 自訂日誌記錄選項有助於監控轉換進度並識別高容量管道中的瓶頸。

高品質的PDF轉影像是什麼樣的?

維基百科首頁的高分辨率 JPG 轉換圖,清晰的文本渲染和完整的佈局,包含@

哪些高階轉換技術最適合生產系統?

對於需要可靠錯誤處理和監控的生產環境,應實施完整的轉換管道。 企業應用需要可靠性和詳細的日誌。 以下模式針對每頁錯誤恢復中常見的生產挑戰:

using IronPdf;
using System.Drawing.Imaging;

bool ConvertWithErrorHandling(string pdfPath, string outputDir)
{
    try
    {
        if (!File.Exists(pdfPath))
            throw new FileNotFoundException("PDF file not found", pdfPath);

        var options = new ChromePdfRenderOptions
        {
            RenderDelay = 500 // Wait for JavaScript
        };

        using (PdfDocument pdf = PdfDocument.FromFile(pdfPath))
        {
            Console.WriteLine($"Processing {pdf.PageCount} pages from {Path.GetFileName(pdfPath)}");

            for (int i = 0; i < pdf.PageCount; i++)
            {
                try
                {
                    string pageOutput = Path.Combine(outputDir, $"page_{i + 1}.jpg");
                    pdf.RasterizeToImageFiles(pageOutput, new[] { i });
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error converting page {i + 1}: {ex.Message}");
                    // Continue with other pages
                }
            }

            return true;
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Conversion failed: {ex.Message}");
        return false;
    }
}

ConvertWithErrorHandling("input.pdf", "output_pages");
using IronPdf;
using System.Drawing.Imaging;

bool ConvertWithErrorHandling(string pdfPath, string outputDir)
{
    try
    {
        if (!File.Exists(pdfPath))
            throw new FileNotFoundException("PDF file not found", pdfPath);

        var options = new ChromePdfRenderOptions
        {
            RenderDelay = 500 // Wait for JavaScript
        };

        using (PdfDocument pdf = PdfDocument.FromFile(pdfPath))
        {
            Console.WriteLine($"Processing {pdf.PageCount} pages from {Path.GetFileName(pdfPath)}");

            for (int i = 0; i < pdf.PageCount; i++)
            {
                try
                {
                    string pageOutput = Path.Combine(outputDir, $"page_{i + 1}.jpg");
                    pdf.RasterizeToImageFiles(pageOutput, new[] { i });
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error converting page {i + 1}: {ex.Message}");
                    // Continue with other pages
                }
            }

            return true;
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Conversion failed: {ex.Message}");
        return false;
    }
}

ConvertWithErrorHandling("input.pdf", "output_pages");
Imports IronPdf
Imports System.Drawing.Imaging
Imports System.IO

Function ConvertWithErrorHandling(pdfPath As String, outputDir As String) As Boolean
    Try
        If Not File.Exists(pdfPath) Then
            Throw New FileNotFoundException("PDF file not found", pdfPath)
        End If

        Dim options As New ChromePdfRenderOptions With {
            .RenderDelay = 500 ' Wait for JavaScript
        }

        Using pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
            Console.WriteLine($"Processing {pdf.PageCount} pages from {Path.GetFileName(pdfPath)}")

            For i As Integer = 0 To pdf.PageCount - 1
                Try
                    Dim pageOutput As String = Path.Combine(outputDir, $"page_{i + 1}.jpg")
                    pdf.RasterizeToImageFiles(pageOutput, {i})
                Catch ex As Exception
                    Console.WriteLine($"Error converting page {i + 1}: {ex.Message}")
                    ' Continue with other pages
                End Try
            Next

            Return True
        End Using
    Catch ex As Exception
        Console.WriteLine($"Conversion failed: {ex.Message}")
        Return False
    End Try
End Function

ConvertWithErrorHandling("input.pdf", "output_pages")
$vbLabelText   $csharpLabel

這段可用於生產環境的程式碼包含了錯誤處理、日誌記錄功能和自訂渲染設定。 此實作支援對大量 JavaScript 內容進行渲染延遲,並在處理過程中提供詳細的回饋。 對於企業部署而言,這種可靠的錯誤處理機制至關重要。 這些安全功能可確保在生產環境中安全地處理文件。

如何比較PDF轉影像的各種方法?

不同的轉換方法適用於不同的需求。 下表比較了 IronPDF C# API 中可用的主要方法:

方法 用例 輸出類型 DPI 控制 最適合
RasterizeToImageFiles 基於文件的批次轉換 JPG、PNG、BMP、TIFF 是的 批量處理,磁碟輸出
ToBitmapHighQuality 記憶體中的高解析度影像 AnyBitmap 數組 是的(300+ DPI) 列印品質輸出
頁面索引過載 選擇性頁面轉換 JPG、PNG 是的 單頁或範圍提取
使用 using 進行批次循環 大型文件處理 JPG 是的 記憶體受限環境

下一步您將如何進行 PDF 轉 JPG 轉換?

IronPDF簡化了 C# 中的 PDF 到 JPG 轉換,將其從複雜的挑戰變成了一項簡單的任務。 它具備全尺寸渲染功能、可自訂的壓縮選項,並能高效處理單頁和整個文檔,為專業 PDF 影像擷取提供了所有必要的工具。 該庫保留了白色背景元素和準確的文字渲染,確保轉換後的圖像保持其原始外觀。 如需了解更多 PDF 操作功能,請查閱完整的 API 參考功能概述

此庫功能豐富,包括PDF 建立、編輯功能、文件組織和安全選項。 無論您需要數位簽章表單處理浮水印或元資料管理, IronPDF都能提供完整的解決方案。 渲染引擎支援包括 CSS3 和JavaScript框架在內的現代 Web 標準。 為了符合無障礙標準,請探索PDF/A 轉換和 PDF/UA 支援。

您可以先免費試用IronPDF 的全部功能,或購買授權進行商業部署。 該程式庫支援 PNG、TIFF 和 BMP 等其他影像格式,使其成為滿足您所有 PDF 轉影像需求的通用解決方案。 尋求社群支援的開發者可以在Stack Overflow.NET GitHub儲存庫NuGet套件頁面上找到有價值的見解。

專業的支援選項可確保成功實施,而完整的文件和程式碼範例可加快開發速度。 該程式庫的跨平台相容性和雲端就緒架構使其適用於現代部署場景。 透過定期更新和安全性補丁, IronPDF仍然是企業級 PDF 處理需求的可靠選擇。

常見問題解答

如何使用 IronPDF 在 VB.NET 中將 PDF 轉換為 JPG?

IronPDF 提供了一種在 VB.NET 中將 PDF 文件轉換為 JPG 影像的簡單方法。借助 IronPDF 強大的引擎,您可以使用簡潔的程式碼產生高品質的 JPEG 影像。

是否可以使用 IronPDF 一次將多個 PDF 頁面轉換為 JPG 格式?

是的,IronPDF支援批次將PDF頁面轉換為JPG影像。您可以有效率地將整個PDF檔案轉換為一系列JPG影像,非常適合需要同時處理多個頁面的專案。

在VB.NET中將PDF轉換為JPG影像時,我能否控制JPG影像的品質?

IronPDF 讓您在轉換過程中控制 JPG 影像的品質。您可以設定所需的圖像質量,以確保輸出滿足您的特定需求,無論是用於高解析度顯示器還是優化的網頁應用。

在VB.NET使用IronPDF進行PDF轉JPG轉換有哪些好處?

IronPDF憑藉其用戶友好的API,簡化了PDF到JPG的轉換過程。它確保高品質的影像輸出,支援批量處理,並能無縫整合到VB.NET專案中,是開發人員的可靠選擇。

IronPDF 是否可以同時用於桌面和網頁應用程式的 PDF 轉 JPG 轉換?

當然,IronPDF 功能全面,可以整合到桌面應用程式和現代 .NET Web 專案中,方便在不同平台上進行 PDF 到 JPG 的轉換。

我是否需要編寫複雜的程式碼才能使用 IronPDF 將 PDF 轉換為 JPG?

不,IronPDF 提供了一個直覺的 API,只需編寫少量簡潔的程式碼即可將 PDF 轉換為 JPG。這使得各種技能水平的開發人員都能輕鬆上手。

Curtis Chau
技術作家

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

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

鋼鐵支援團隊

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