在 previous post 中,我们讨论了如何从 Java 文档中提取图像。今天,我们将寻求使用 C# 实现相同的目标。如果您还没有访问过最后一篇文章,请不要担心。在本文中,我们将学习使用文档解析 .NET API 在 C# 应用程序中以编程方式从 PDF、Excel、PowerPoint 和 Word 文档中提取图像。

此处将涵盖以下主题:
图像、文本和元数据提取 .NET API

GroupDocs.Parser for .NET 是文档解析和数据提取的 .NET API。它支持文档解析和从文字处理文档**、电子表格、演示文稿、档案和提取图像、文本和元数据 电子邮件文件。在文章的最后,提到 API 支持的用于图像提取的文档格式。
在本文中,我们将使用此 API,因此我建议下载 其二进制文件或从 NuGet 安装 API 以准备环境。
在 C# 中从 PDF 文档中提取图像

按照这些简单的步骤,您可以轻松地从任何 PDF 文档中检索所有图像。
- 使用源文档实例化 Parser 类对象。
- 调用 Parser 类的 GetImages 方法获取 PageImageArea 对象中所有图像的集合。
- 遍历 PageImageArea 以获取每个图像。
- 使用 PageImageArea 的 Save 方法将图像保存在磁盘上。
提取的图像可以保存为 BMP、GIF、JPEG、PNG 和 WebP 格式。下面显示了完整的代码来演示整个步骤。
// 使用 GroupDocs.Parser for .NET 从 C# 中的 Word、Excel、PPT、PDF 中提取图像
using (Parser parser = new Parser("path/document.pdf"))
{
IEnumerable<PageImageArea> images = parser.GetImages();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// 迭代检索到的图像
foreach (PageImageArea image in images)
{
// 保存图像并打印页面索引、矩形和图像类型:
Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}

在 C# 中从 Word、Excel、PowerPoint 文件中提取图像
不仅限于 PDF 格式,我们可以从文字处理文档、电子表格、演示文稿中取出所有图像,并使用未更改的代码库。只需使用文件扩展名更改源文档路径,您的文档将被解析以提取所有图像并将其保存到磁盘。
using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document
从 C# 中的特定文档页面提取图像
如果要从文档的特定页面中提取图像,可以使用下面提到的步骤和 C# 代码轻松完成。
- 使用GetDocumentInfo方法获取文档信息。
- 从文档信息中取出总PageCount等信息。
- 使用 GetImages(pageIndex) 方法并将您的目标页面索引传递给它。
- 要保存检索到的图像,遍历图像集合,并使用 Save 方法保存单个图像。
// 使用 GroupDocs.Parser for .NET 从 C# 中的 Word、Excel、PowerPoint、PDF 的特定页面中提取图像
using (Parser parser = new Parser("path/document.pdf"))
{
// 获取文档信息
IDocumentInfo documentInfo = parser.GetDocumentInfo();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// 遍历页面
for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
{
// 打印页码
Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
// 迭代图像。忽略示例中的空检查
foreach (PageImageArea image in parser.GetImages(pageIndex))
{
// 打印矩形和图像类型
Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}
}
C# 中支持的图像提取格式
以下是 GroupDocs.Parser for .NET API 支持的用于图像提取的文档格式。
文件類型 | 文件格式 |
---|---|
文字處理文件 | DOC、DOCX、DOCM、DOT、DOTX、DOTM、ODT、OTT、RTF |
電子表格 | XLS、XLSX、XLSM、XLSB、XLT、XLTX、XLTM、ODS、OTS、XLA、XLAM、NUMBERS |
演講 | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
便攜式文件 | |
電子郵件 | EML、EMLX、MSG |
檔案 | ZIP |
更多关于 GroupDocs.Parser
让我们多聊聊@免费支持论坛