使用 C# 将 PDF 转换为图像

您可能需要将 PDF 文档的页面作为图像文件与他人共享。作为 C# 开发人员,您可以在 .NET 应用程序中以编程方式轻松地将 PDF 文件转换为 PNG、JPG、TIFF 或 BMP。在本文中,您将学习如何使用 C# 将 PDF 转换为图像。

本文讨论/涵盖了以下主题:

PDF 到图像转换 C# API

为了将 PDF 转换为图像,我将使用 Aspose.PDF for .NET API。它是一个功能强大的 PDF 文件管理 API,可让您在 .NET 应用程序中操作 PDF 文档。它允许您在不使用 Adobe Acrobat 的情况下创建、修改、转换、渲染、保护和打印文档。

您可以下载 API 的 DLL 或使用 NuGet 安装它。

Install-Package Aspose.Pdf

使用 C# 将 PDF 转换为 PNG 图像

您可以按照以下步骤以编程方式将 PDF 文件转换为 PNG 图像:

  • 使用输入 PDF 文件路径创建 Document 类的实例。
  • 使用 Document.Pages 集合循环浏览 PDF 的所有页面并执行以下操作:
    • 创建 Resolution 类的实例并设置其值。
    • 创建 PngDevice 类的实例并传递 Width、Height 和 Resolution 对象。
    • 使用页码和输出 PNG 图片路径调用 Process(Page, String) 方法,将页面转换为 PNG。

以下代码示例展示了如何使用 C# 将 PDF 页面转换为 PNG 图像。

// 打开文档
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

foreach (var page in pdfDocument.Pages)
{
    // 定义分辨率
    Resolution resolution = new Resolution(300);

    // 创建具有指定属性的 Png 设备
    // 宽度、高度、分辨率
    PngDevice PngDevice = new PngDevice(500, 700, resolution);

    // 转换特定页面并将图像保存到流
    PngDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".Png");
}
使用 C# 将 PDF 转换为 PNG 图像

使用 C# 将 PDF 转换为 PNG 图像

Document 类表示 PDF 文档。它提供了几个属性和方法来执行各种功能。 Document.Pages 集合是文档页面的集合,页面编号从集合中的 1 开始。 Resolution 类定义图像分辨率。 PngDevice 类允许将 PDF 文档的页面保存为 PNG 图像。此类提供以下方法将页面保存为 PNG 图像:

使用 C# 将 PDF 转换为 JPG 图像

您可以按照以下步骤以编程方式将 PDF 文件转换为 JPG 图像:

  • 使用输入文件路径创建 Document 类的实例。
  • 使用 Document.Pages 集合循环浏览 PDF 的所有页面并执行以下操作:
    • 创建 Resolution 类的实例并设置其值。
    • 创建 JpegDevice 类的实例并传递 Width、Height 和 Resolution 对象。
    • 使用页码和输出 JPG 图片路径调用 Process(Page, String) 方法,将页面转换为 JPG。

以下代码示例展示了如何使用 C# 将 PDF 页面转换为 JPG 图像。

// 打开文档
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

foreach (var page in pdfDocument.Pages)
{
    // 定义分辨率
    Resolution resolution = new Resolution(300);
    
    // 创建具有指定属性的 Jpeg 设备
    // 宽度、高度、分辨率
    JpegDevice JpegDevice = new JpegDevice(500, 700, resolution);

    // 转换特定页面并将图像保存到流
    JpegDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".Jpg");
}
使用 C# 将 PDF 转换为 JPG 图像

使用 C# 将 PDF 转换为 JPG 图像

使用 C# 将 PDF 转换为 BMP

您可以按照以下步骤以编程方式将 PDF 文件转换为 BMP 图像:

  • 使用输入文件路径创建 Document 类的实例。
  • 使用 Document.Pages 集合循环浏览 PDF 的所有页面并执行以下操作:
    • 创建 Resolution 类的实例并设置其值。
    • 创建 BmpDevice 类的实例并传递 Width、Height 和 Resolution 对象。
    • 使用页码和输出BMP图像路径调用Process(Page, String)方法,将页面转换为BMP。

以下代码示例展示了如何使用 C# 将 PDF 页面转换为 BMP 图像。

// 打开文档
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

foreach (var page in pdfDocument.Pages)
{
    // 定义分辨率
    Resolution resolution = new Resolution(300);
    
    // 创建具有指定属性的 PNG 设备
    // 宽度、高度、分辨率
    BmpDevice BmpDevice = new BmpDevice(500, 700, resolution);

    // 转换特定页面并将图像保存到流
    BmpDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".bmp");
}
使用 C# 将 PDF 转换为 BMP

使用 C# 将 PDF 转换为 BMP

使用 C# 将 PDF 转换为 TIFF

您可以按照以下步骤以编程方式将 PDF 文件转换为 TIFF:

  • 使用输入文件路径创建 Document 类的实例。
  • 初始化 Resolution 类的实例并设置其值。
  • 创建 TiffSettings 类的实例。
  • 设置各种属性,例如 Compression、Depth、Shape 和 SkipBlankPages 等。
  • 使用 Resolution 和 TiffSettings 对象创建 TiffDevice 类的实例。
  • 使用 Document 对象和输出 TIFF 文件路径调用 Process(Document, String) 方法以将文档转换为 TIFF。

以下代码示例展示了如何使用 C# 将 PDF 文件转换为 TIFF。

// 打开文档
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

// 定义分辨率
Resolution resolution = new Resolution(300);

// 创建 TiffSettings 对象
TiffSettings tiffSettings = new TiffSettings
{
    Compression = CompressionType.None,
    Depth = ColorDepth.Default,
    Shape = ShapeType.Portrait,
    SkipBlankPages = false
};

// 创建 TIFF 设备
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);

// 转换特定页面并将图像保存到流
tiffDevice.Process(pdfDocument, "C:\\Files\\AllPagesToTIFF_out.tif");
使用 C# 将 PDF 转换为 TIFF

使用 C# 将 PDF 转换为 TIFF

TiffSettings 类提供了几个用于将 PDF 转换为 TIFF 的设置。在将 PDF 转换为 TIFF 时,您可以设置亮度、压缩、坐标类型、深度、边距、形状和 SkipBlankPages。

使用 C# 从 PDF 文档中提取图像

您可以按照以下步骤以编程方式从任何 PDF 文件中提取所有图像:

  • 使用输入文件路径创建 Document 类的实例。
  • 对于每个页面,为 Page.Resources.Images 集合中的每个图像创建 XImage 实例。
  • 使用输出图像文件路径创建 FileStream 类的实例。
  • 使用 FileStream 对象调用 Save() 方法保存图像
  • 最后,使用 Close() 方法关闭 FileStream。

以下代码示例展示了如何使用 C# 从 PDF 文档中提取图像。

// 打开文档
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

// 循环浏览页面
foreach (var page in pdfDocument.Pages)
{
    int imageCounter = 1;
    // 循环遍历所有图像
    foreach (XImage image in page.Resources.Images)
    {
        // 为图像创建文件流
        FileStream outputImage = new FileStream(String.Format("C:\\Files\\Page{0}_Image{1}.jpg", page.Number, imageCounter), FileMode.Create);

        // 保存输出图像
        image.Save(outputImage);

        // 关闭流
        outputImage.Close();

        imageCounter++;
    }
}
使用 C# 从 PDF 文档中提取图像

使用 C# 从 PDF 文档中提取图像

XImage 类表示图像 X-Object。它提供了几个处理图像的属性和方法。 XImage 类提供以下方法来保存图像对象:

Page.Resources.Images 集合表示特定页面的图像集合。

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 C# 将 PDF 文件页面转换为图像。您还学习了如何以编程方式将 PDF 转换为 PNG、PDF 转换为 JPG、PDF 转换为 BMP 以及 PDF 转换为 TIFF。此外,您还学习了如何使用 C# 从 PDF 文件中提取图像。 API 还提供压缩选项、表格创建和操作、图形和图像功能、广泛的超链接功能、印章和水印任务、扩展的安全控制和自定义字体处理。您可以使用 文档 了解更多关于 Aspose.PDF for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看