Если у вас есть документ и вы хотите использовать изображения внутри этого документа в некоторых других документах, вот одно из решений. В этой статье мы научимся ** программно извлекать изображения из документов PDF, Excel, PowerPoint и Word с помощью Java**.

Извлечение изображений из документов в Java

Java-API для извлечения изображений

Анализ документов и извлечение данных в Java

Для извлечения изображений мы будем использовать GroupDocs.Parser for Java. Этот Java API поддерживает анализ документов и извлечение изображений, текста и метаданных из текстовых документов, электронных таблиц, презентаций, архивов. , и отправлять по электронной почте документы. Ниже приведены форматы документов, поддерживаемые Java API для извлечения изображений.

Тип документа Форматы файлов
Текстовые документы DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Таблицы XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS
Презентации PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Портативные документы PDF
Электронная почта EML, EMLX, MSG
Архивы ZIP

Прежде чем вы начнете с приведенных ниже примеров, я бы порекомендовал настроить среду, загрузив последнюю версию Java API для синтаксического анализа документов из раздел загрузок, или вы можете установить следующие конфигурации в своем *на основе maven * Java-приложения:

<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>20.8</version> 
</dependency>

Извлечение изображений из PDF-документов в Java

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

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

  1. Создайте объект класса Parser.
  2. Вызовите метод getImages класса Parser, чтобы получить все изображения.
  3. Перебирайте изображения, используя PageImageArea.
  4. Сохраняйте изображения, используя метод сохранения PageImageArea.

Это сделано. См. полный код ниже. Извлеченные изображения можно сохранить в форматах BMP, GIF, JPEG, PNG и WebP.

// Программное извлечение изображений из документов Word, Excel, PowerPoint, PDF с помощью GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Извлечь изображения
	Iterable<PageImageArea> images = parser.getImages();

	// Создайте параметры для сохранения изображений в формате PNG
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Перебрать изображения и сохранить
	for (PageImageArea image : images) {
		// Распечатайте индекс страницы, прямоугольник и тип файла изображения:
		System.out.println(String.format("Page: %d, R: %s, Type: %s", image.getPage().getIndex(), 
				image.getRectangle(), image.getFileType()));
		image.save(String.format("filesPath/image_%d.png", imageNumber), options);
		imageNumber++;
	}
}

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

Извлеченные изображения из документа с использованием Java

Извлечение изображений из файлов Word, Excel, PowerPoint в Java

Точно так же все изображения могут быть извлечены из файлов текстовых редакторов, электронных таблиц, презентаций с неизменной кодовой базой. Что вы должны изменить? Просто путь к исходному документу и правильное расширение файла.

Parser parser = new Parser("path/document.docx") // Word Document
// Parser parser = new Parser("path/document.xlsx") // Excel Spreadsheet
// Parser parser = new Parser("path/document.pptx") // PowerPoint Presentation
// Parser parser = new Parser("path/document.pdf") // PDF Document

Извлечение изображения из определенной страницы документа в Java

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

// Извлечение изображений с определенной страницы Word, Excel, PowerPoint, PDF в Java с помощью GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Получить информацию о документе
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Создайте параметры для сохранения изображений в формате PNG
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Перебирать страницы
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Печать номеров страниц
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Итерация по изображениям — игнорирование проверки NULL в примерах
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Распечатать информацию об изображении и сохранить файл
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Вывод

Сегодня мы узнали, как извлекать изображения из всего документа и конкретной страницы текстовых документов, электронных таблиц, презентаций и PDF в Java. Нет никакой разницы в коде, если нам нужно извлекать изображения из файлов разных форматов. Мы просто должны пройти правильный путь и имя. Вот и все.

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