В предыдущем посте мы обсуждали, как извлекать изображения из документов в 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 для .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 для .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 для .NET API для извлечения изображений.

Подробнее о GroupDocs.Parser

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

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