Витягування зображень з файлів PDF часто необхідне при створенні конвеєрів обробки документів, особливо коли потрібно повторно використати графіку для мініатюр, звітів або подальшого аналізу. GroupDocs.Parser Cloud SDK for Java надає простий API, який дозволяє отримати кожне вбудоване зображення з PDF за кілька рядків коду. Цей посібник проведе вас через налаштування SDK, запуск повного прикладу коду, використання cURL для тієї ж задачі та застосування кращих практик для забезпечення надійного витягування зображень з PDF.

Витягнення зображень з PDF‑документів у Java за 5 кроків

  1. Налаштуйте облікові дані API: Створіть об’єкт Configuration і встановіть ваш client ID та secret.
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
  1. Ініціалізуйте Parser API: Створіть ApiClient з конфігурацією та створіть екземпляр ParserApi.
ApiClient apiClient = new ApiClient(config);
ParserApi parserApi = new ParserApi(apiClient);
  1. Створіть запит на витяг зображень: Вкажіть шлях до PDF‑файлу за допомогою FileInfo та створіть ExtractImagesRequest.

    String inputFilePath = "input.pdf";
    ExtractImagesRequest request = new ExtractImagesRequest()
            .setFileInfo(new FileInfo().setFilePath(inputFilePath));
    
  2. Виконайте вилучення та отримайте зображення: Викличте extractImages і отримайте список об’єктів Image.

ImagesResult imagesResult = parserApi.extractImages(request);
List<Image> images = imagesResult.getImages();
  1. Зберегти кожне зображення у локальне сховище: Пройдіться по колекції та запишіть бінарні дані у файли.
for (int i = 0; i < images.size(); i++) {
    Image img = images.get(i);
    String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
    try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
        fos.write(img.getData());
    }
    System.out.println("Saved image: " + outputFileName);
}

Для отримання докладнішої інформації про кожен клас, зверніться до офіційної довідки API.

Повний приклад коду: Витягнення зображень з PDF‑документів у Java за допомогою GroupDocs.Parser

Наступний приклад демонструє повний робочий процес від налаштування облікових даних до збереження зображення.

import com.groupdocs.parser.cloud.ApiClient;
import com.groupdocs.parser.cloud.Configuration;
import com.groupdocs.parser.cloud.api.ParserApi;
import com.groupdocs.parser.cloud.model.FileInfo;
import com.groupdocs.parser.cloud.model.Image;
import com.groupdocs.parser.cloud.model.ImagesResult;
import com.groupdocs.parser.cloud.model.requests.ExtractImagesRequest;

import java.io.FileOutputStream;
import java.util.List;

public class ExtractImagesFromPdf {
    public static void main(String[] args) {
        // Configure API credentials
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        // config.setBaseUrl("https://api.groupdocs.cloud"); // optional, if needed

// Initialize API client and Parser API
        ApiClient apiClient = new ApiClient(config);
        ParserApi parserApi = new ParserApi(apiClient);

// Path to the PDF file stored in GroupDocs Cloud storage
        String inputFilePath = "input.pdf";

// Build request for image extraction
        ExtractImagesRequest request = new ExtractImagesRequest()
                .setFileInfo(new FileInfo().setFilePath(inputFilePath));

try {
            // Perform extraction
            ImagesResult imagesResult = parserApi.extractImages(request);
            List<Image> images = imagesResult.getImages();

// Save each extracted image to local disk
            for (int i = 0; i < images.size(); i++) {
                Image img = images.get(i);
                String outputFileName = "extracted_image_" + (i + 1) + "_" + img.getFileName();
                try (FileOutputStream fos = new FileOutputStream(outputFileName)) {
                    fos.write(img.getData());
                }
                System.out.println("Saved image: " + outputFileName);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності правильно встановлені, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь‑якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.

Витяг зображень з PDF за допомогою cURL та REST API

Ви можете досягти того ж результату без написання коду Java, викликаючи REST‑ендпоінти GroupDocs.Parser Cloud безпосередньо.

  1. Отримайте токен доступу
curl -X POST "https://api.groupdocs.cloud/v2.0/connect/token" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Завантажте PDF файл
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input.pdf" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -F "file=@/path/to/input.pdf"
  1. Запит на вилучення зображень
curl -X POST "https://api.groupdocs.cloud/v2.0/parser/extractImages" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{"fileInfo": {"filePath": "input.pdf"}}'
  1. Завантажити витягнуті зображення (відповідь містить дані у форматі base64; ви можете розкодувати їх локально)

Для повного списку параметрів перегляньте офіційну документацію API.

Встановлення та налаштування GroupDocs.Parser Cloud SDK for Java

Додайте залежність Maven у ваш pom.xml (або відповідний фрагмент Gradle).

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-parser-cloud</artifactId>
    <version>26.2</version>
</dependency>

SDK поставляється як хмарна бібліотека; локальні бінарні файли не потрібні. Завантажте останній пакет зі сторінки випуску. Переконайтеся, що у вас встановлено Java 8 або новішу версію та дійсний обліковий запис GroupDocs Cloud з ідентифікатором клієнта та секретом.

GroupDocs.Parser Cloud SDK for Java Функції, що дозволяють отримання зображень

  • Повне вилучення зображень PDF - Отримує кожне растрове та векторне зображення, вбудоване в документ.
  • Метадані для кожного зображення - Повертає ім’я файлу, розмір, формат та номер сторінки.
  • Підтримка всіх поширених форматів зображень - PNG, JPG, BMP, GIF, TIFF, та інші.
  • Інтеграція з хмарним сховищем - Працює безпосередньо з файлами, збереженими в GroupDocs Cloud, без попереднього їх завантаження.
  • Масштабована обробка на основі REST - Обробляє великі PDF‑файли та високонавантажені завдання через хмарний API.

Тонке налаштування параметрів вилучення зображень

Хоча базовий запит працює «з коробки», ви можете налаштувати параметри, такі як:

  • Захист паролем - Встановіть властивість password у FileInfo для зашифрованих PDF.
  • Діапазон сторінок - Обмежте вилучення конкретними сторінками, додавши масив pages у JSON запиту.
  • Конвертація формату зображення - Запросіть конвертацію у інший формат, вказавши бажаний тип вихідних даних у запиті (дивіться API reference для точних полів).

Приклад встановлення пароля (вибірка з основного коду):

FileInfo fileInfo = new FileInfo()
        .setFilePath("protected.pdf")
        .setPassword("mySecret");

Практичні поради щодо ефективного вилучення зображень з PDF

  • Перевірте існування файлу перед відправкою запиту, щоб уникнути непотрібних викликів API.
  • Обробляйте зображення у потоках при роботі з великими файлами, щоб зменшити споживання пам’яті.
  • Використовуйте пагінацію, якщо потрібні зображення лише з певних сторінок; це прискорює відповідь.
  • Обробляйте обмеження швидкості API, впроваджуючи експоненціальне затримання при відповідях HTTP 429.
  • Записуйте назви кожного збереженого файлу для спрощення усунення неполадок та аудиту.

Висновок

Видобуток зображень з PDF‑документів у Java стає простим і надійним завданням, коли ви використовуєте потужність GroupDocs.Parser Cloud SDK for Java. SDK керує управлінням облікових даних, взаємодією з хмарним сховищем та декодуванням зображень, дозволяючи вам зосередитися на логіці вашого застосунку. Для продакшн‑розгортань придбайте відповідну ліцензію на сторінці цін або отримайте тимчасову ліцензію для оцінки. Завдяки прикладу коду, посібнику cURL та рекомендаціям щодо кращих практик у цій статті, ви готові інтегрувати видобуток зображень з PDF у будь‑яке рішення на базі Java.

Питання та відповіді

  • Які формати можна витягти з PDF?
    SDK витягує растрові формати, такі як PNG, JPG, BMP, GIF та TIFF, а також векторну графіку, коли вона зберігається як зображення.

  • Чи потрібно завантажувати PDF перед витягуванням зображень?
    Ні. SDK працює безпосередньо з файлами, збереженими у сховищі GroupDocs Cloud, усуваючи необхідність локального завантаження.

  • Як SDK обробляє великі PDF?
    Витяг виконується на стороні сервера, тому використання пам’яті на вашому комп’ютері залишається низьким. Ви також можете обмежити витяг конкретними сторінками, щоб підвищити продуктивність.

  • Чи є спосіб протестувати вилучення без написання коду?
    Так, ви можете використати наведені вище команди cURL або спробувати інтерактивну консоль API на сторінці продукту.

Читати далі