В предыдущем посте мы обсуждали, как извлекать изображения из документов в Java. Сегодня мы попытаемся достичь той же цели, используя C#. Не беспокойтесь, если вы не посетили последний пост. В этой статье мы научимся программно извлекать изображения из документов PDF, Excel, PowerPoint и Word в приложении C#, используя .NET API для анализа документов.

Извлечение изображений из документов в .NET

Здесь будут затронуты следующие темы:

Извлечение изображений, текста и метаданных .NET API

Анализ документов и извлечение данных в .NET

GroupDocs.Parser for .NET — это .NET API для разбора документов и извлечения данных. Он поддерживает анализ документов и извлечение изображений, текста и метаданных из текстовых документов, электронных таблиц, презентаций, архивов и отправить документы. В конце статьи упомянуты форматы документов, поддерживаемые API для извлечения изображений.

В этой статье мы будем использовать этот API, поэтому я бы рекомендовал скачать его двоичные файлы или установить API из NuGet для подготовки среды.

Извлечение изображений из PDF-документов в C#

PDF-документ для извлечения изображений

Вы можете легко получить все изображения из любого документа PDF, выполнив следующие простые шаги.

  1. Создайте объект класса Parser с исходным документом.
  2. Вызовите метод GetImages класса Parser, чтобы получить коллекцию всех изображений в объектах PageImageArea.
  3. Переберите PageImageArea, чтобы получить каждое изображение.
  4. Сохраняйте изображения на диск, используя метод Save PageImageArea.

Извлеченные изображения можно сохранить в форматах BMP, GIF, JPEG, PNG и WebP. Полный код показан ниже, чтобы продемонстрировать все шаги.

// Извлечение изображений из Word, Excel, PPT, PDF на C# с помощью GroupDocs.Parser for .NET
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

Извлечение изображений из файлов Word, Excel, PowerPoint на C#

Не ограничиваясь только форматом 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#.

  • Получить информацию о документе с помощью метода GetDocumentInfo.
  • Из информации о документе выньте общее количество PageCount и другую информацию.
  • Используйте метод GetImages(pageIndex) и передайте ему индекс целевой страницы.
  • Чтобы сохранить полученные изображения, просмотрите коллекцию изображений и сохраните отдельное изображение, используя метод Сохранить.
// Извлечение изображений с определенной страницы Word, Excel, PowerPoint, PDF на C# с помощью GroupDocs.Parser for .NET
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

Давайте еще поговорим на Форум бесплатной поддержки

Статьи по Теме