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, як зазначено вище, або оновіть до останньої версії 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. Отримайте доступ до кожного зображення з колекції та збережіть його за допомогою методу збереження.
// Перегляд отриманих зображень
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, використовуючи його документацію. Крім того, ви можете поділитися своїми запитами з нами через наш форум.

Дивись також