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

文件類型 文件格式
文字處理文件 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
便攜式文件 PDF
電子郵件 EML、EMLX、MSG
檔案 ZIP

更多关于 GroupDocs.Parser

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

相关文章