PDF, будучи одним із найпопулярніших форматів файлів, використовується майже кожною компанією та галуззю. PDF-документи можуть містити різноманітний вміст, включаючи форматований текст, зображення, анотації тощо. Часто потрібно витягти вміст із файлів PDF. У цій статті ми обговоримо, як програмно витягувати зображення з документів PDF у Java.

Java API для вилучення зображень із PDF-файлів

GroupDocs надає GroupDocs.Parser для розробників Java для вилучення зображень із файлів PDF. Разом із PDF-файлом той самий API підтримує синтаксичний аналіз, а також вилучення зображень із різних інших форматів документів, таких як текстові документи, електронні таблиці, електронні книги, презентації, електронні листи, ZIP-архіви та багато інших форматів документів .

Завантажити або налаштувати

Ви можете завантажити файл JAR із розділу завантажень або просто отримати репозиторій і конфігурації залежностей для pom.xml ваших програм Java на основі Maven.

<repository>
    <id>groupdocs-artifacts-repository</id>
    <name>GroupDocs Artifacts Repository</name>
    <url>https://releases.groupdocs.com/java/repo/</url>
</repository>
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-parser</artifactId>
    <version>22.11</version>
</dependency>

Кроки для вилучення зображень із документа PDF у Java

Нижче наведено покрокові вказівки, які показують, як отримати зображення з файлу PDF за допомогою кількох рядків коду Java.

  1. Створіть новий проект.
  2. Завантажте API, як зазначено вище, або оновіть до останньої версії API.
  3. Імпортуйте такі класи:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
  1. Завантажте PDF-документ за допомогою класу Parser.
// Завантажити файл PDF
try (Parser parser = new Parser("path/document.pdf")) {
    // Тут міститься код вилучення зображення.
}
  1. Витягніть усі зображення з документа за допомогою методу getImages.
// Витягніть зображення із завантаженого файлу
Iterable<PageImageArea> images = parser.getImages();
  1. Отримайте доступ до кожного зображення з колекції та збережіть його за допомогою методу збереження.
// Збережіть файл із їхнім розширенням
for (PageImageArea image : images)  {
    image.save(String.format("path/image_%d" + image.getFileType().getExtension(), imageCounter++));
}

Зображення можна зберігати в різних форматах зображень, наприклад PNG, JPG, BMP, WebP або GIF.

Повний код Java – витяг зображення з PDF

Ось повний вихідний код, який дозволяє отримати всі зображення з наданого файлу PDF.

// Витягніть зображення з PDF-файлу в Java
try (Parser parser = new Parser("path/document.pdf")) 
{
    // Отримати зображення
    Iterable<PageImageArea> images = parser.getImages();
    
    // Перевірте, чи підтримується вилучення зображень
    if (images == null) 
    {
        System.out.println("Images extraction isn't supported");
        return;
    }
    
    int imageCounter = 0;
    // Ітерація вилучених зображень
    for (PageImageArea image : images) 
    {
        image.save(String.format("path/image_%d" + image.getFileType().getExtension(), imageCounter++));
    }
}

Результати

Зразок PDF-документа

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

Витягнуті зображення

витягнуті зображення з PDF.

Якщо вам потрібно, в окремій статті також пояснюється, як ви можете витягнути зображення з будь-якої певної сторінки PDF-документа в Java.

Детальніше

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

Дивись також