Якщо у вас є документ і ви хочете використати зображення в цьому документі в інших документах, ось одне з рішень. У цій статті ми навчимося програмно видобувати зображення з документів 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 для аналізу документів із розділу завантажень, або ви можете встановити наступні конфігурації у своїх програмах Java на основі Maven:

<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-Checking у прикладах
		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. Немає різниці в коді, якщо нам потрібно витягти зображення з файлів різних форматів. Треба тільки пройти правильний шлях і назву. Це воно.

Дивись також