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

从 .NET 中的文档中提取图像

此处将涵盖以下主题:

图像、文本和元数据提取 .NET API

在 .NET 中解析文档和提取数据

GroupDocs.Parser for .NET 是文档解析和数据提取的 .NET API。它支持文档解析文字处理文档**、电子表格演示文稿、档案提取图像、文本元数据 电子邮件文件。在文章的最后,提到 API 支持的用于图像提取的文档格式。

在本文中,我们将使用此 API,因此我建议下载 其二进制文件或从 NuGet 安装 API 以准备环境。

在 C# 中从 PDF 文档中提取图像

提取图像的 PDF 文档

按照这些简单的步骤,您可以轻松地从任何 PDF 文档中检索所有图像。

  1. 使用源文档实例化 Parser 类对象。
  2. 调用 Parser 类的 GetImages 方法获取 PageImageArea 对象中所有图像的集合。
  3. 遍历 PageImageArea 以获取每个图像。
  4. 使用 PageImageAreaSave 方法将图像保存在磁盘上。

提取的图像可以保存为 BMPGIFJPEGPNGWebP 格式。下面显示了完整的代码来演示整个步骤。

// 使用 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++;
    }
}
使用 GroupDocs.Parser 从文档中提取图像

在 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 支持的用于图像提取的文档格式。

更多关于 GroupDocs.Parser

让我们多聊聊@[免费支持论坛][26]

相关文章

  • [使用Java从文档中提取图像][27]
  • [使用Python从云端文档中提取图像][28]

[25]: https://products.groupdocs.app/parser) [26]: https://forum.groupdocs.com/c/parser [27]: https://blog.groupdocs.com/2020/10/27/extract-images-from-pdf-word-excel-ppt-using-java/ [28]: https://blog.groupdocs.cloud/2020/10/25/extract-images-from-word-excel-ppt-pdf-using-python/