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