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.

Bilder aus Dokumenten in Java extrahieren

Bildextraktions-Java-API

Analysieren Sie Dokumente und extrahieren Sie Daten in Java

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.

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

PDF-Dokument zum Extrahieren von Bildern

Befolgen Sie diese einfachen Schritte, um alle Bilder aus dem PDF-Dokument zu erhalten.

  1. Instanziiere das Klassenobjekt Parser.
  2. Rufen Sie die getImages-Methode der Parser-Klasse auf, um alle Bilder abzurufen.
  3. Bilder mit PageImageArea durchlaufen.
  4. 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 für 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.

Extrahierte Bilder aus Dokument mit Java

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.

Siehe auch