Электронные книги различных форматов очень распространены в повседневном использовании. Электронная книга может содержать как текст, так и изображения. Если вы хотите использовать изображения любой электронной книги в другом месте, вы можете легко извлечь их программным способом в своем приложении Java. В этой статье вы узнаете, как автоматизировать извлечение изображений из файлов электронных книг, таких как EPUB, PDF, FB2, CHM, в Java.

Ниже будут рассмотрены следующие темы:

Java API для извлечения изображений из электронных книг

GroupDocs.Parser для Java API — это многофункциональный API автоматизации для извлечения изображений из электронных книг и документов на Java. В дополнение к этому API поддерживает синтаксический анализ и извлечение изображений, текста и метаданных из текстовых документов, электронных таблиц, PDF, презентаций, электронных писем, ZIP-архивов и многих других поддерживаемых форматов документов.

Загрузите и настройте

Получите файл JAR из раздела downloads или просто добавьте следующую конфигурацию pom.xml в свои Java-приложения на основе Maven, чтобы попробовать приведенные ниже примеры. Для получения подробной информации вы можете посетить Справочник по API.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>21.2</version> 
</dependency>

Извлечение изображений из электронной книги EPUB на Java

Давайте начнем с электронной книги EPUB, чтобы проанализировать ее на наличие изображений. Следующие шаги анализируют электронную книгу EPUB и извлекают из нее все изображения с помощью кода Java.

  • Создайте объект класса Parser с электронной книгой.
  • Используйте метод getImages для извлечения всех изображений электронной книги EPUB.
  • Просмотрите извлеченные изображения и сохраните их на диск.
Электронная книга EPUB с изображениями

Электронная книга EPUB от Adobe [Пример библиотеки электронных книг][11]

Следующий код Java анализирует электронную книгу EPUB и сохраняет изображения электронной книги одно за другим на диск.

// Разбирайте электронные книги для извлечения изображений из файлов PDF, EPUB, FB2, CHM в Java и сохраняйте на диск.
Parser parser = new Parser("ebook.epub");
// Извлекайте изображения из электронной книги и сохраняйте в формате JPEG.
Iterable<PageImageArea> images = parser.getImages();
ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
int imageNumber = 0;
// Перебирать извлеченные изображения
for (PageImageArea image : images) {
    image.save(Constants.getOutputFilePath(String.format("%d.jpeg", imageNumber)), options);
    imageNumber++;
}
Извлеченное изображение из электронной книги EPUB

В результате все изображения будут сохранены в указанном месте. Вот одно из изображений, представленных в качестве образца.

Изображения можно сохранять в любом из следующих форматов файлов изображений:

  • JPG
  • PNG
  • ВЕБП
  • Гифка
  • БМП

Извлечение изображений из электронных книг PDF, FB2, CHM на Java

В дополнение к формату EPUB, если у вас есть электронная книга в формате PDF, FB2, CHM или в каком-либо другом формате, вы можете извлечь их изображения таким же образом. Просто передайте свою электронную книгу конструктору Parser при создании объекта. После этого метод getImages будет извлекать изображения из предоставленных вами электронных книг, используя тот же код Java.

// Provide different eBook formats to the Parser constructor to extract the images.
// Parser parser = new Parser("ebook.epub");
Parser parser = new Parser("ebook.pdf");
// Parser parser = new Parser("ebook.fb2");
// Parser parser = new Parser("ebook.chm");

Iterable<PageImageArea> images = parser.getImages();

Вывод

В этой статье вы научились программно получать все изображения из электронных книг PDF, EPUB, FB2, CHM в ваших приложениях Java. Теперь вы можете попробовать создать собственное Java-приложение для извлечения изображений с помощью GroupDocs.Parser for Java API.

Чтобы узнать больше об API, вы можете посетить документацию или примеры с открытым исходным кодом на GitHub. Если возникнут дополнительные вопросы, вы можете обратиться в службу поддержки на форуме.

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