便携式文档格式 (PDF) 是由 Adobe 开发的一种流行且广泛使用的文档格式。 PDF 文档可以包含各种内容,包括格式化文本、图像、注释、表单字段等。以编程方式解析 PDF 文档是一种流行的用例,并且有多种提取文本的方法。然而,从 PDF 文档中提取图像是一项复杂的任务。本文演示了如何使用 C# 以编程方式轻松地从 PDF 文档中提取图像。

从 PDF 文件中提取图像的 .NET API

GroupDocs.Parser for .NET API 将在从 PDF 文件中提取图像方面发挥作用。除了 PDF,API 还支持从文字处理文档、电子表格、电子书、演示文稿、电子邮件、ZIP 存档和许多其他文档格式 中解析和提取图像。

您可以从 下载部分 下载 DLL 或 MSI 安装程序,或通过 NuGet 在您的 .NET 应用程序中安装 API。

PM> Install-Package GroupDocs.Parser

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

让我们快速逐步了解如何使用几行 C# 代码从 PDF 文件中获取图像。

  1. 创建一个新项目。
  2. 如上所述下载 API 或更新到最新的 API 版本。
  3. 添加以下命名空间:
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
  1. 使用 Parser 类加载 PDF 文档。
// 创建 Parser 类的实例
using (Parser parser = new Parser("path/document.pdf"))
{
  // 你的代码在这里。
}
  1. 使用 GetImages 方法从文档中提取图像。
// 提取图像
IEnumerable<PageImageArea> images = parser.GetImages();

// 检查是否支持图像提取
if (images == null)
{
    Console.WriteLine("Images extraction isn't supported");
    return;
}
  1. 访问集合中的每个图像并使用 Save 方法保存它。
// 迭代检索到的图像
foreach (PageImageArea image in images)
{
    // 保存图片
    image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", new ImageOptions(ImageFormat.Jpeg));
    imageNumber++;
}

您可以将图像保存为各种不同的图像,如 JPG、PNG、BMP、WebP 或 GIF。

C#完整代码——从PDF中提取图像

这是完整的代码,可让您从 PDF 文件中获取所有图像。

// 使用C#从PDF中提取图像
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    // 检查是否支持图像提取
    if (images == null) 
    {
        Console.WriteLine("Images extraction isn't supported");
        return;
    }
    
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    
    // 迭代检索到的图像
    foreach (PageImageArea image in images)
    {
        // 保存图片
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", options);
        imageNumber++;
    }
}

结果

示例 PDF 文档

具有要提取的图像的 PDF 文档。

提取图像

从 PDF 中提取图像。

如果您需要,还可以在另一篇文章中解释如何使用 C# 从 PDF 文档的任何特定页面中提取图像

阅读更多

您可以使用其 文档 探索有关 .NET 数据提取 API 的更多信息。此外,您可以通过我们的 论坛 与我们分享您的疑问。

也可以看看