Se hai un documento e desideri utilizzare le immagini all’interno di quel documento in altri documenti, ecco una delle soluzioni. In questo articolo impareremo a estrarre a livello di codice immagini da documenti PDF, Excel, PowerPoint e Word utilizzando Java.

Estrai immagini da documenti in Java

API Java per l’estrazione di immagini

Analizza documenti ed estrai dati in Java

Per l’estrazione delle immagini utilizzeremo GroupDocs.Parser for Java. Questa API Java supporta l’analisi di documenti e l’estrazione di immagini, testo e metadati da documenti di elaborazione testi, fogli di calcolo, presentazioni, archivi , e e-mail di documenti. Di seguito sono riportati i formati di documento supportati dall’API Java per l’estrazione delle immagini.

Tipo di documento Formati di file
Documenti di elaborazione testi DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Fogli di calcolo XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS
Presentazioni PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Documenti portatili PDF
e-mail EML, EMLX, MSG
Archivi ZIP

Prima di iniziare con gli esempi seguenti, ti consiglio di configurare l’ambiente scaricando l’ultima versione dell’API Java per l’analisi dei documenti dalla sezione download oppure puoi impostare le seguenti configurazioni nel tuo *maven-based * applicazioni 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>

Estrai immagini da documenti PDF in Java

Documento PDF per estrarre immagini

Segui questi semplici passaggi per ottenere tutte le immagini dal documento PDF.

  1. Istanziare l’oggetto classe Parser.
  2. Chiama il metodo getImages della classe Parser per ottenere tutte le immagini.
  3. Esegui l’iterazione sulle immagini utilizzando PageImageArea.
  4. Salva le immagini usando il metodo di salvataggio di PageImageArea.

E ‘fatto. Vedi il codice completo qui sotto. Le immagini estratte possono essere salvate nei formati BMP, GIF, JPEG, PNG e WebP.

// Estrai immagini da documenti Word, Excel, PowerPoint, PDF in modo programmatico utilizzando GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Estrai immagini
	Iterable<PageImageArea> images = parser.getImages();

	// Crea le opzioni per salvare le immagini in formato PNG
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Iterare sulle immagini e salvare
	for (PageImageArea image : images) {
		// Stampa l'indice della pagina, il rettangolo e il tipo di file immagine:
		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++;
	}
}

Queste sono le immagini recuperate dal documento PDF utilizzando il codice sopra.

Immagini estratte dal documento utilizzando Java

Estrai immagini da file Word, Excel, PowerPoint in Java

Allo stesso modo, tutte le immagini possono essere estratte da file di videoscrittura, fogli elettronici, presentazioni, con la base di codice invariata. Cosa devi cambiare? Solo il percorso del documento di origine e l’estensione del file corretta.

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

Estrazione dell’immagine dalla pagina del documento specifica in Java

Se non vuoi estrarre tutte le immagini dall’intero documento ma da qualche pagina specifica. Di seguito il codice mostra come possiamo estrarre immagini da una particolare pagina del documento in Java.

// Estrai le immagini da una pagina specifica di Word, Excel, PowerPoint, PDF in Java utilizzando GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Ottieni le informazioni sul documento
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Crea le opzioni per salvare le immagini in formato PNG
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Iterare sulle pagine
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Stampa numeri di pagina
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Iterare sulle immagini - Ignorando il controllo NULL negli esempi
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Stampa informazioni sull'immagine e salva file
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Conclusione

Oggi abbiamo imparato come estrarre immagini dall’intero documento e dalla pagina specifica di documenti di elaborazione testi, fogli di calcolo, presentazioni e PDF in Java. Non c’è differenza nel codice se dobbiamo estrarre immagini dai file di diversi formati di file. Dobbiamo solo passare il percorso e il nome giusti. Questo è tutto.

Guarda anche