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

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