跳至页脚内容
使用IRONPDF

使用IronPDF在C#中将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 图片创建一个有序的输出目录。 无论您需要转换的是两页备忘录还是百页报告,该流程均可灵活应对。 每页将生成一个独立的 JPG 文件,并通过 IronPDF 的渲染功能保持原始版面布局。 视口设置可确保在不同页面尺寸下实现正确的缩放。

对于包含多种字体、特殊字符或国际语言的文档,渲染引擎能准确保留其格式。 该库在转换过程中会处理嵌入的图像和矢量图形。 处理受密码保护的 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 转换图,清晰的文本渲染和完整的布局,展示了"意大利面屋人质事件"条目和关于大象安妮的"你知道吗"部分,体现了专业级的 PDF 转图像转换效果。

哪些高级转换技术最适合生产系统?

对于需要可靠错误处理和监控的生产环境,请实施完整的转换管道。 Enterprise级应用程序要求具备可靠性及详细的日志记录功能。 以下方案解决了基于单页错误恢复的常见生产挑战:

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 密集型内容进行渲染延迟,并在处理过程中提供详细的反馈。 对于Enterprise部署而言,这种可靠的错误处理机制至关重要。 这些安全功能可确保在生产环境中安全地处理文档。

如何比较 PDF 转图像的方法?

不同的转换方法适用于不同的需求。 下表对比了 IronPDF C# API 中可用的主要方法:

翻译方法 使用案例 输出类型 DPI 控制 最适合
RasterizeToImageFiles 基于文件的批量转换 JPG、PNG、BMP、TIFF 批量处理,磁盘输出
ToBitmapHighQuality 内存中高清图像 AnyBitmap 数组 是(300+ DPI) 打印级输出
页面索引过载 选择性页面转换 JPG、PNG 单页或范围提取
使用 using 进行批量循环 大型文档处理 JPG 内存受限环境

您接下来将如何进行 PDF 转 JPG 转换?

IronPDF 简化了 C# 中的 PDF 转 JPG 操作,将其从一项复杂的挑战转变为一项简单的任务。 凭借全尺寸渲染能力、可自定义的压缩选项以及对单页和整份文档的高效处理,它提供了 Professional PDF 图像提取所需的一切工具。 该库能保留白色背景元素并准确呈现文本,确保转换后的图像保持原始外观。 如需了解更多的 PDF 处理功能,请查阅完整的 API 参考文档和功能概述

该库的功能丰富,包括 PDF 创建、编辑功能、文档组织以及安全选项。 无论您需要数字签名表单处理水印添加还是元数据管理,IronPDF 都能提供完整的解决方案。 渲染引擎支持包括 CSS3 和 JavaScript 框架在内的现代网络标准。 为符合无障碍标准,请探索 PDF/A 转换及 PDF/UA 支持。

立即开始免费试用,探索 IronPDF 的完整功能集,或购买许可证以进行商业部署。 该库还支持其他图像格式,包括 PNG、TIFF 和 BMP,使其成为满足您所有 PDF 转图像需求的通用解决方案。 寻求社区支持的开发者可在 Stack Overflow.NET GitHub 仓库以及 NuGet 包页面上获取有价值的见解。

Professional技术支持服务可确保顺利实施,而完整的文档和代码示例则能加速开发进程。 该库的跨平台兼容性及其支持云部署的架构,使其非常适合现代部署场景。 凭借定期更新和安全补丁,IronPDF 始终是满足 Enterprise 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 图像的质量。您可以设置所需的图像质量,以确保输出满足您的特定需求,无论是用于高分辨率显示还是优化网络使用。

使用 IronPDF 在 VB.NET 中将 PDF 转换为 JPG 有哪些好处?

IronPDF 利用其用户友好的 API 简化了 PDF 到 JPG 的转换过程。它能确保高质量的图像输出,支持批量处理,并能无缝集成到 VB.NET 项目中,是开发人员的可靠选择。

IronPDF 是否既可用于桌面应用程序,也可用于将 PDF 转换为 JPG 的网络应用程序?

当然,IronPDF 适用于 .NET 用途广泛,既可以集成到桌面应用程序中,也可以集成到现代 .NET 网络项目中,便于在不同平台上将 PDF 转换为 JPG。

使用 IronPDF 将 PDF 转换为 JPG 是否需要编写复杂的代码?

这不,IronPDF 提供了一个直观的 API,允许您使用最少、简洁的代码将 PDF 转换为 JPG。这使得各种技能水平的开发人员都能使用它。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我