Portable Document Format (PDF) — популярный и широко используемый формат документов, разработанный Adobe. PDF-документы могут содержать разнообразный контент, включая форматированный текст, изображения, аннотации, поля форм и т. д. Программный анализ PDF-документов является популярным вариантом использования, и существует несколько способов извлечения текста. Однако извлечение изображений из PDF-документа — сложная задача. В этой статье показано, как легко можно программно извлекать изображения из PDF-документов на C#.

.NET API для извлечения изображений из файлов PDF

GroupDocs.Parser for .NET API будет играть свою роль в извлечении изображений из файлов PDF. Наряду с PDF API поддерживает анализ и извлечение изображений из текстовых документов, электронных таблиц, электронных книг, презентаций, электронных писем, ZIP-архивов и многих других форматов документов.

Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API в своем приложении .NET через NuGet.

PM> Install-Package GroupDocs.Parser

Действия по извлечению изображений из документа PDF с помощью C#

Давайте быстро рассмотрим шаг за шагом, как получить изображения из файла PDF, используя несколько строк кода C#.

  1. Создайте новый проект.
  2. Загрузите API, как указано выше, или обновите его до последней версии.
  3. Добавьте следующие пространства имен:
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
  1. Загрузите документ PDF с помощью класса Parser.
// Создайте экземпляр класса Parser
using (Parser parser = new Parser("path/document.pdf"))
{
  // ваш код идет сюда.
}
  1. Извлеките изображения из документа с помощью метода GetImages.
// Извлечь изображения
IEnumerable<PageImageArea> images = parser.GetImages();

// Проверьте, поддерживается ли извлечение изображений
if (images == null)
{
    Console.WriteLine("Images extraction isn't supported");
    return;
}
  1. Получите доступ к каждому изображению из коллекции и сохраните его с помощью метода Save.
// Перебирать полученные изображения
foreach (PageImageArea image in images)
{
    // Сохранить изображения
    image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", new ImageOptions(ImageFormat.Jpeg));
    imageNumber++;
}

Вы можете сохранять изображения в различных форматах, таких как JPG, PNG, BMP, WebP или GIF.

Полный код C# — извлечение изображения из PDF

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

// Извлечение изображений из PDF с помощью C#
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    // Проверьте, поддерживается ли извлечение изображений
    if (images == null) 
    {
        Console.WriteLine("Images extraction isn't supported");
        return;
    }
    
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    
    // Перебирать полученные изображения
    foreach (PageImageArea image in images)
    {
        // Сохранить изображения
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", options);
        imageNumber++;
    }
}

Результаты

Образец PDF-документа

Документ PDF с изображениями для извлечения.

Извлеченные изображения

извлеченные изображения из PDF.

Если вам нужно, в отдельной статье также объясняется, как вы можете извлекать изображения из любой конкретной страницы PDF-документа с помощью C#.

Прочитайте больше

Вы можете узнать больше об API извлечения данных .NET, используя его документацию. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.

Смотрите также