Если у вас есть документ и вы хотите использовать изображения внутри этого документа в некоторых других документах, вот одно из решений. В этой статье мы научимся ** программно извлекать изображения из документов PDF, Excel, PowerPoint и Word с помощью Java**.
- Java API для извлечения изображений
- Извлечение изображений из документов PDF в Java
- Извлечение изображений из документов Word, Excel, PowerPoint на Java
- Извлечь изображение из определенной страницы в Java
Java-API для извлечения изображений
Для извлечения изображений мы будем использовать 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 |
Портативные документы | |
Электронная почта | 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.
- Создайте объект класса Parser.
- Вызовите метод getImages класса Parser, чтобы получить все изображения.
- Перебирайте изображения, используя PageImageArea.
- Сохраняйте изображения, используя метод сохранения 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 с использованием приведенного выше кода.
Извлечение изображений из файлов 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. Нет никакой разницы в коде, если нам нужно извлекать изображения из файлов разных форматов. Мы просто должны пройти правильный путь и имя. Вот и все.