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.
- API Java d’extraction d’images
- Extraction d’images à partir de documents PDF en Java
- Extraire des images de documents Word, Excel, PowerPoint en Java
- Extraire l’image d’une page spécifique en Java
API Java d’extraction d’images
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 | |
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
Suivez ces étapes simples pour obtenir toutes les images du document PDF.
- Instanciez l’objet de classe Parser.
- Appelez la méthode getImages de la classe Parser pour obtenir toutes les images.
- Itérer sur les images en utilisant PageImageArea.
- 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.
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.