Wenn Sie ein Dokument haben und die Bilder in diesem Dokument in anderen Dokumenten verwenden möchten, finden Sie hier eine der Lösungen. In diesem Artikel werden wir lernen, Bilder mithilfe von Java programmgesteuert aus PDF-, Excel-, PowerPoint- und Word-Dokumenten zu extrahieren.
- Bildextraktions-Java-API
- Bildextraktion aus PDF-Dokumenten in Java
- Bilder aus Word-, Excel- und PowerPoint-Dokumenten in Java extrahieren
- Bild von bestimmter Seite in Java extrahieren
Bildextraktions-Java-API
Für die Extraktion von Bildern verwenden wir GroupDocs.Parser for Java. Diese Java-API unterstützt das Parsen von Dokumenten und das Extrahieren von Bildern, Text und Metadaten aus Textverarbeitungsdokumenten, Tabellenkalkulationen, Präsentationen, Archiven , und E-Mail Dokumente. Die folgenden Dokumentformate werden von der Java-API für die Bildextraktion unterstützt.
Dokumententyp | Dateiformate |
---|---|
Textverarbeitungsdokumente | DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF |
Tabellenkalkulationen | XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS |
Präsentationen | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
Tragbare Dokumente | |
E-Mails | EML, EMLX, MSG |
Archiv | ZIP |
Bevor Sie mit den folgenden Beispielen beginnen, würde ich empfehlen, die Umgebung einzurichten, indem Sie die neueste Version der Java-API zum Analysieren von Dokumenten aus dem Download-Bereich herunterladen, oder Sie können die folgenden Konfigurationen in Ihrem *maven-basierten * Java-Anwendungen:
<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>
Extrahieren Sie Bilder aus PDF-Dokumenten in Java
Befolgen Sie diese einfachen Schritte, um alle Bilder aus dem PDF-Dokument zu erhalten.
- Instanziiere das Klassenobjekt Parser.
- Rufen Sie die getImages-Methode der Parser-Klasse auf, um alle Bilder abzurufen.
- Bilder mit PageImageArea durchlaufen.
- Speichern Sie Bilder mit der save-Methode von PageImageArea.
Es ist fertig. Siehe den vollständigen Code unten. Extrahierte Bilder können in den Formaten BMP, GIF, JPEG, PNG und WebP gespeichert werden.
// Extrahieren Sie Bilder aus Word-, Excel-, PowerPoint- und PDF-Dokumenten programmgesteuert mit GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
// Bilder extrahieren
Iterable<PageImageArea> images = parser.getImages();
// Erstellen Sie die Optionen zum Speichern von Bildern im PNG-Format
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// Über Bilder iterieren und speichern
for (PageImageArea image : images) {
// Drucken Sie den Seitenindex, das Rechteck und den Bilddateityp:
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++;
}
}
Dies sind die Bilder, die mit dem obigen Code aus dem PDF-Dokument abgerufen werden.
Extrahieren Sie Bilder aus Word-, Excel- und PowerPoint-Dateien in Java
Ebenso können alle Bilder aus den Textverarbeitungsdateien, Tabellenkalkulationen, Präsentationen mit der unveränderten Codebasis herausgenommen werden. Was müssen Sie ändern? Nur der Pfad des Quelldokuments und die richtige Dateierweiterung.
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
Bildextraktion von einer bestimmten Dokumentseite in Java
Wenn Sie nicht alle Bilder aus dem gesamten Dokument, sondern aus einer bestimmten Seite extrahieren möchten. Der folgende Code zeigt, wie wir Bilder aus einer bestimmten Seite des Dokuments in Java extrahieren können.
// Extrahieren Sie Bilder aus bestimmten Seiten von Word, Excel, PowerPoint, PDF in Java mit GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
// Holen Sie sich die Dokumentinformationen
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Erstellen Sie die Optionen zum Speichern von Bildern im PNG-Format
ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
int imageNumber = 0;
// Über Seiten iterieren
for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
// Seitenzahlen drucken
System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));
// Über Bilder iterieren - Ignorieren der NULL-Prüfung in den Beispielen
for (PageImageArea image : parser.getImages(pageIndex)) {
// Bildinformationen drucken und Datei speichern
System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
imageNumber++;
}
}
}
Fazit
Heute haben wir gelernt, wie man Bilder aus dem gesamten Dokument und aus bestimmten Seiten von Textverarbeitungsdokumenten, Tabellenkalkulationen, Präsentationen und PDF-Dateien in Java extrahiert. Es gibt keinen Unterschied im Code, wenn wir Bilder aus Dateien unterschiedlicher Dateiformate extrahieren müssen. Wir müssen nur den richtigen Pfad und Namen passieren. Das ist es.