Als u een document heeft en u wilt de afbeeldingen in dat document in andere documenten gebruiken, dan is hier een van de oplossingen. In dit artikel leren we afbeeldingen programmatisch extraheren uit PDF-, Excel-, PowerPoint- en Word-documenten met behulp van Java.

Extraheer afbeeldingen uit documenten in Java

Java-API voor het extraheren van afbeeldingen

Documenten ontleden en gegevens extraheren in Java

Voor het extraheren van afbeeldingen gebruiken we GroupDocs.Parser for Java. Deze Java API ondersteunt het parseren van documenten en het extraheren van afbeeldingen, tekst en metagegevens uit tekstverwerkingsdocumenten, spreadsheets, presentaties, archieven en e-maildocumenten. Hieronder volgen de documentindelingen die worden ondersteund door de Java API voor het extraheren van afbeeldingen.

Documenttype Bestandsformaten
Tekstverwerkingsdocumenten DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Spreadsheets XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMMERS
Presentaties PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Draagbare documenten Pdf
E-mails EML, EMLX, MSG
Archief POST

Voordat u begint met de onderstaande voorbeelden, raad ik u aan de omgeving in te stellen door de nieuwste versie van documentparsing Java API te downloaden van de downloads-sectie of u kunt de volgende configuraties instellen in uw maven-gebaseerde java-applicaties:

<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>

Extraheer afbeeldingen uit PDF-documenten in Java

PDF-document om afbeeldingen te extraheren

Volg deze eenvoudige stappen om alle afbeeldingen uit het PDF-document te halen.

  1. Maak een instantiëring van het klasseobject Parser.
  2. Roep de methode getImages van de klasse Parser aan om alle afbeeldingen op te halen.
  3. Doorloop afbeeldingen met PageImageArea.
  4. Sla afbeeldingen op met de opslagmethode van PageImageArea.

Het is klaar. Zie de volledige code hieronder. Geëxtraheerde afbeeldingen kunnen worden opgeslagen in de formaten BMP, GIF, JPEG, PNG en WebP.

// Extraheer afbeeldingen uit Word-, Excel-, PowerPoint- en PDF-documenten programmatisch met behulp van GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Extraheer afbeeldingen
	Iterable<PageImageArea> images = parser.getImages();

	// Maak de opties om afbeeldingen in PNG-indeling op te slaan
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Herhaal afbeeldingen en sla op
	for (PageImageArea image : images) {
		// Druk de pagina-index, rechthoek en afbeeldingsbestandstype af:
		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++;
	}
}

Dit zijn de afbeeldingen die zijn opgehaald uit het PDF-document met behulp van de bovenstaande code.

Geëxtraheerde afbeeldingen uit document met behulp van Java

Extraheer afbeeldingen uit Word-, Excel- en PowerPoint-bestanden in Java

Evenzo kunnen alle afbeeldingen uit de tekstverwerkingsbestanden, spreadsheets, presentaties worden gehaald met de ongewijzigde codebasis. Wat moet je veranderen? Alleen het brondocumentpad en de juiste bestandsextensie.

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

Beeldextractie van specifieke documentpagina in Java

Als u niet alle afbeeldingen uit het hele document wilt extraheren, maar uit een specifieke pagina. Onderstaande code laat zien hoe we afbeeldingen van een bepaalde pagina van het document in Java kunnen extraheren.

// Extraheer afbeeldingen van een specifieke pagina van Word, Excel, PowerPoint, PDF in Java met behulp van GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Download de documentinformatie
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Maak de opties om afbeeldingen in PNG-indeling op te slaan
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Herhaal pagina's
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Paginanummers afdrukken
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Herhaal afbeeldingen - Negeer NULL-controle in de voorbeelden
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Afbeeldingsinformatie afdrukken en bestand opslaan
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Conclusie

Vandaag hebben we geleerd hoe we afbeeldingen uit het hele document en de specifieke pagina met tekstverwerkingsdocumenten, spreadsheets, presentaties en pdf in Java kunnen extraheren. Er is geen verschil in de code als we afbeeldingen uit de bestanden van verschillende bestandsindelingen moeten extraheren. We moeten alleen het juiste pad en de juiste naam passeren. Dat is het.

Zie ook