Как извлечь изображения из PDF с помощью GroupDocs.Watermark Java

Работа с PDF‑файлами часто требует извлечения изображений — будь то повторное использование графики, выполнение OCR или применение пользовательских водяных знаков. В этом руководстве вы узнаете, как извлекать изображения из PDF быстро и надёжно с помощью библиотеки GroupDocs.Watermark Java. Мы рассмотрим всё: от настройки окружения до сохранения каждого найденного изображения в файл PNG, а также покажем, как масштабировать решение для пакетного извлечения изображений из PDF.

Быстрые ответы

  • Что означает «how to extract images»? Это программный поиск и сохранение встроенной графики из PDF‑файла.
  • Какая библиотека лучше всего подходит для Java? GroupDocs.Watermark предоставляет простой API для поиска и извлечения изображений.
  • Нужна ли лицензия? Бесплатная пробная версия подходит для разработки; для продакшн‑использования требуется коммерческая лицензия.
  • Можно ли сохранять изображения в PNG? Да — используйте метод save у объектов PdfImage.
  • Возможна ли пакетная обработка? Конечно; просто выполните цикл по нескольким путям к PDF с тем же кодом.

Что такое извлечение изображений из PDF?

Извлечение изображений — это процесс идентификации каждого растрового или векторного графического элемента, встроенного в PDF‑документ, и экспорта его в отдельный файл изображения. Это полезно для повторного использования контента, проверки качества или передачи изображений в последующие рабочие процессы, такие как конвейеры машинного обучения.

Почему использовать GroupDocs.Watermark для Java?

  • Высокая точность — движок анализирует внутреннюю структуру PDF, чтобы находить вложенные и встроенные изображения.
  • Простой API — несколько строк кода позволяют получить коллекцию объектов PdfImage.
  • Оптимизированная производительность — хорошо работает даже с большими PDF‑файлами, содержащими множество страниц.
  • Расширяемость — можно фильтровать по размеру, формату или заменять изображения после извлечения.

Требования

  • Java Development Kit (JDK) 8 или новее.
  • SDK GroupDocs.Watermark for Java, добавленный в ваш проект (Maven/Gradle или вручную JAR).
  • Пример PDF, содержащий встроенную графику.
  • Базовое знакомство с синтаксисом Java и настройкой IDE.

Импорт необходимых пакетов

Начните с импорта необходимых классов, предоставляемых API:

import com.groupdocs.watermark.domain.PdfSearchableObjects;
import com.groupdocs.watermark.domain.watermarkable.PdfImage;
import com.groupdocs.watermark.domain.watermarkable.WatermarkableImageCollection;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.Watermarker;

Пошаговое руководство

Шаг 1: Загрузите ваш PDF‑документ

Необходимо загрузить PDF в экземпляр Watermarker, прежде чем выполнять поиск.

// Specify the path to your PDF
String inputPdfPath = "C:\\Docs\\sample.pdf";

// Initialize load options
PdfLoadOptions loadOptions = new PdfLoadOptions();

// Create Watermarker instance
Watermarker watermarker = new Watermarker(inputPdfPath, loadOptions);

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

Шаг 2: Настройте поиск встроенных или прикреплённых изображений

Укажите движку искать только изображения (игнорируя другие объекты, такие как текст или аннотации).

// Set to search only for attached images
watermarker.getSearchableObjects().setPdfSearchableObjects(PdfSearchableObjects.AttachedImages);

Зачем? Фокусировка поиска уменьшает время обработки и возвращает более чистую коллекцию.

Шаг 3: Поиск изображений в PDF

Получите полную коллекцию изображений, соответствующих критериям.

// Retrieve all images matching the search criteria
WatermarkableImageCollection images = watermarker.getImages();

// Output the number of images found
System.out.println("Number of images found: " + images.getCount());

Полезный совет: Вы можете проверить images.getCount(), чтобы решить, нужна ли дальнейшая обработка.

Шаг 4: Обработка найденных изображений — сохранение PDF‑изображений как PNG

Теперь, когда у вас есть объекты PdfImage, вы можете сохранить каждый из них как отдельный PNG‑файл — распространённое требование, когда нужно save pdf images png.

int index = 1;
for (PdfImage image : images) {
    // Save each image as PNG
    image.save("C:\\Output\\Image_" + index + ".png");
    index++;
}

Распространённая ошибка: Если не создать выходную директорию, возникнет IOException. Создайте папку заранее или добавьте проверку в коде.

Шаг 5: Закройте ресурсы

Всегда освобождайте Watermarker, чтобы освободить нативные ресурсы.

watermarker.close();

Как выполнить пакетное извлечение изображений из PDF

Если необходимо извлекать изображения из множества PDF, оберните вышеописанные шаги в цикл, проходящий по списку путей к файлам. Та же логика Watermarker применяется к каждому документу, позволяя построить конвейер batch pdf image extraction с помощью лишь нескольких дополнительных строк Java.

Распространённые проблемы и решения

ПроблемаРешение
Изображения не найденыУбедитесь, что PDF действительно содержит встроенные изображения. Используйте функцию “Export images” в PDF‑просмотрщике для проверки.
Ошибки доступаУбедитесь, что процесс Java имеет права чтения/записи к входным и выходным папкам.
Большие PDF вызывают OutOfMemoryErrorУвеличьте размер кучи JVM (флаг -Xmx) или обрабатывайте PDF постранично, используя PdfLoadOptions.setPageNumber.
Изображения сохраняются в неправильном форматеМетод save учитывает указанное расширение файла; используйте .png для без потерь вывода.

Часто задаваемые вопросы

Q: Можно ли фильтровать изображения по размеру или формату при использовании extract images pdf java?
A: Да. После получения WatermarkableImageCollection проверьте свойства каждого PdfImage (ширина, высота, формат) и примените условную логику перед сохранением.

Q: Можно ли заменить изображение после извлечения?
A: Конечно. Используйте watermarker.replace(image, newImage), где newImage — это PdfImage, созданный из файла или потока.

Q: Поддерживает ли библиотека PDF‑файлы, защищённые паролем?
A: Да. Укажите пароль в PdfLoadOptions.setPassword("yourPassword") перед созданием Watermarker.

Q: Как этот подход сравнивается с использованием функции “Export images” в PDF‑просмотрщике?
A: Программное извлечение с помощью GroupDocs.Watermark полностью автоматизируемо, работает на серверах и может быть интегрировано в более крупные рабочие процессы, такие как пакетная обработка или последующие AI‑конвейеры.

Q: Какая версия GroupDocs.Watermark требуется?
A: Любая недавняя версия (выпуски 2024‑2025) поддерживает показанный API. Проверьте официальные примечания к выпуску для мелких изменений.

Заключение

Теперь у вас есть полный, готовый к продакшн метод how to extract images из PDF‑файлов с использованием GroupDocs.Watermark for Java. Загрузив документ, настроив поиск, получив коллекцию изображений и сохранив каждое изображение в PNG, вы сможете автоматизировать повторяющиеся задачи, поддерживать пакетную обработку и интегрировать извлечение изображений в более крупные Java‑приложения.


Последнее обновление: 2026-02-26
Тестировано с: GroupDocs.Watermark for Java 23.9 (latest at time of writing)
Автор: GroupDocs