Si vous avez un document et que vous souhaitez utiliser les images à l’intérieur de ce document dans d’autres documents, voici l’une des solutions. Dans cet article, nous allons apprendre à extraire par programme des images de documents PDF, Excel, PowerPoint et Word à l’aide de Java.

Extraire des images de documents en Java

API Java d’extraction d’images

Analyser des documents et extraire des données en Java

Pour l’extraction des images, nous utiliserons GroupDocs.Parser for Java. Cette API Java prend en charge l’analyse de documents et l’extraction d’images, de texte et de métadonnées à partir de documents de traitement de texte, de feuilles de calcul, de présentations, d’archives , et envoyer par e-mail des documents. Voici les formats de document pris en charge par l’API Java pour l’extraction d’images.

Type de document Formats de fichier
Documents de traitement de texte DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Feuilles de calcul XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS
Présentations PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Documents portables PDF
E-mails EML, EMLX, MSG
Archives ZIP

Avant de commencer avec les exemples ci-dessous, je vous recommande de configurer l’environnement en téléchargeant la dernière version de l’API Java d’analyse de documents à partir de la section des téléchargements ou vous pouvez définir les configurations suivantes dans votre *maven-based * applicatifs 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>

Extraire des images de documents PDF en Java

Document PDF pour extraire des images

Suivez ces étapes simples pour obtenir toutes les images du document PDF.

  1. Instanciez l’objet de classe Parser.
  2. Appelez la méthode getImages de la classe Parser pour obtenir toutes les images.
  3. Itérer sur les images en utilisant PageImageArea.
  4. Enregistrez les images à l’aide de la méthode d’enregistrement de PageImageArea.

C’est fait. Voir le code complet ci-dessous. Les images extraites peuvent être enregistrées aux formats BMP, GIF, JPEG, PNG et WebP.

// Extraire des images de documents Word, Excel, PowerPoint et PDF par programmation à l'aide de GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Extraire des images
	Iterable<PageImageArea> images = parser.getImages();

	// Créer les options pour enregistrer les images au format PNG
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Itérer sur les images et enregistrer
	for (PageImageArea image : images) {
		// Imprimez l'index de la page, le rectangle et le type de fichier image :
		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++;
	}
}

Ce sont les images extraites du document PDF en utilisant le code ci-dessus.

Images extraites du document à l'aide de Java

Extraire des images de fichiers Word, Excel, PowerPoint en Java

De même, toutes les images peuvent être extraites des fichiers de traitement de texte, des tableurs, des présentations, avec la base de code inchangée. Qu’est-ce que tu dois changer ? Juste le chemin du document source et la bonne extension de fichier.

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

Extraction d’image à partir d’une page de document spécifique en Java

Si vous ne souhaitez pas extraire toutes les images de l’ensemble du document mais d’une page spécifique. Le code ci-dessous montre comment nous pouvons extraire des images d’une page particulière du document en Java.

// Extraire des images d'une page spécifique de Word, Excel, PowerPoint, PDF en Java à l'aide de GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Obtenir les informations sur le document
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Créer les options pour enregistrer les images au format PNG
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Itérer sur les pages
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// Imprimer les numéros de page
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// Itérer sur les images - Ignorer la vérification NULL dans les exemples
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Imprimer les informations sur l'image et enregistrer le fichier
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Conclusion

Aujourd’hui, nous avons appris ** comment extraire des images de l’ensemble du document et de la page spécifique des documents de traitement de texte, des feuilles de calcul, des présentations et des PDF en Java **. Il n’y a aucune différence dans le code si nous devons extraire des images des fichiers de différents formats de fichiers. Nous devons juste passer le bon chemin et le nom. C’est ça.

Voir également