便携式文档格式 (PDF) 是由 Adobe 开发的流行且广泛使用的文档格式。 PDF 文档可以包含各种内容,包括格式化文本、图像、注释、表单域等。以编程方式解析 PDF 文档是一种流行的用例,并且有多种提取文本的方法。但是,从 PDF 文档中提取图像是一项复杂的任务。本文演示了使用 [GroupDocs.Parser for .NET](https://products.groupdocs. com/解析器) API。那么让我们开始吧。

从 PDF 文档中提取图像的步骤

1. 创建一个新项目。

2. 下载 GroupDocs.Parser for .NET 或使用 NuGet 安装/GroupDocs.Parser)。

3. 添加以下命名空间。

using GroupDocs.Parser;
using GroupDocs.Parser.Data;
using System.Drawing;
using System.Drawing.Imaging;

4. 加载 PDF 文档。

// 创建 Parser 类的实例
using (Parser parser = new Parser("sample.pdf"))
{
  // 你的代码在这里。
}

5. 从文档中提取图像。

// 提取图像
IEnumerable<PageImageArea> images = parser.GetImages();
// 检查是否支持图像提取
if (images == null)
{
  Console.WriteLine("Images extraction isn't supported");
  return;
}

6. 访问集合中的每个图像并保存。

// 迭代图像
foreach (PageImageArea image in images)
{
  // 保存图像
  Image.FromStream(image.GetImageStream()).Save(string.Format("{0}.Jpeg", counter++), ImageFormat.Jpeg);                    
}

完整代码

// 创建 Parser 类的实例
using (Parser parser = new Parser("C:\\candy.pdf"))
{
	// 提取图像
	IEnumerable<PageImageArea> images = parser.GetImages();
	// 检查是否支持图像提取
	if (images == null)
	{
		Console.WriteLine("Images extraction isn't supported");
		return;
	}
	
	int counter = 1;
	// 迭代图像
	foreach (PageImageArea image in images)
	{
		// 保存每张图片
		Image.FromStream(image.GetImageStream()).Save(string.Format("{0}.Jpeg", counter++), ImageFormat.Jpeg);                    
	}
}

结果

PDF 文件

用于提取图像的 PDF 文档。

提取的图像

从 PDF 中提取图像。

有关 GroupDocs.Parser 为 .NET API 提供的功能的完整列表,请访问 文档。干杯!