Extraire du texte et des images de documents PDF à l'aide de Java

PDF est le format de document numérique le plus utilisé. Nous pouvons analyser des documents PDF et en extraire du texte et des images par programmation. Cela pourrait être utile dans plusieurs cas, tels que l’analyse de texte, la recherche d’informations, la conversion de documents, etc. Dans cet article, nous allons apprendre comment extraire du texte et des images de documents PDF en utilisant Java.

Les sujets suivants seront traités dans cet article :

API Java pour extraire du texte et des images à partir de documents PDF

Pour extraire du texte et des images à partir de documents PDF, nous utiliserons l’API GroupDocs.Parser for Java. Il permet l’extraction de texte, de métadonnées et d’images bruts, formatés et structurés à partir de fichiers aux formats pris en charge. Veuillez soit télécharger le JAR de l’API ou ajouter la configuration pom.xml suivante dans une application Java basée sur Maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>22.3</version> 
</dependency>

Extraire du texte de documents PDF à l’aide de Java

Nous pouvons analyser n’importe quel document PDF et extraire du texte en suivant les étapes ci-dessous :

  • Tout d’abord, chargez le fichier PDF à l’aide de la classe Parser.
  • Ensuite, appelez la méthode Parser.getText() pour extraire le texte du document chargé.
  • Ensuite, obtenez les résultats dans l’objet de classe TextReader.
  • Enfin, appelez la méthode TextReader.readToEnd() pour lire tous les caractères de la position actuelle à la fin du lecteur de texte et les renvoyer sous la forme d’une chaîne.

L’exemple de code suivant montre comment extraire du texte d’un fichier PDF à l’aide de Java.

// Cet exemple de code montre comment analyser un PDF et extraire du texte.
// Créer une instance de la classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Extraire un texte dans le lecteur
try (TextReader reader = parser.getText()) {
    // Print a text from the document
    // If text extraction isn't supported, a reader is null
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Extraire du texte de documents PDF à l'aide de Java

Extraire du texte de documents PDF à l’aide de Java

Extraire le texte d’une page spécifique d’un document PDF à l’aide de Java

Vous pouvez analyser un document PDF et extraire le texte d’une page spécifique en suivant les étapes simples mentionnées ci-dessous :

L’exemple de code suivant montre comment extraire du texte d’une page spécifique à l’aide de Java.

// Cet exemple de code montre comment analyser un PDF et extraire du texte d'une page spécifique.
// Créer une instance de la classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Obtenir les informations sur le document
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Vérifiez si le document contient des pages
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

// Extraire un texte dans le lecteur
try (TextReader reader = parser.getText(1)) {
    // Print a text from the document
    // If text extraction isn't supported, a reader is null
    System.out.println(reader.readToEnd());
}

L’API permet également de vérifier si le document prend en charge la fonction d’extraction de texte. À cette fin, nous pouvons utiliser la propriété Parser.getFeatures().isText(). Veuillez en savoir plus sur les fonctionnalités prises en charge.

Obtenir des images à partir de documents PDF à l’aide de Java

Nous pouvons analyser n’importe quel document PDF et extraire des images en suivant les étapes ci-dessous :

  • Tout d’abord, chargez le fichier PDF à l’aide de la classe Parser.
  • Ensuite, appelez la méthode Parser.getImages() et obtenez la collection d’objets PageImageArea à partir du document chargé.
  • Ensuite, vérifiez si la collection n’est pas nulle.
  • Après cela, parcourez toutes les images trouvées.
  • Enfin, affichez les détails des images.

L’exemple de code suivant montre comment obtenir des détails d’images à partir d’un fichier PDF à l’aide de Java.

// Cet exemple de code montre comment analyser un PDF et obtenir des images.
// Créer une instance de la classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Extraire des images
Iterable<PageImageArea> images = parser.getImages();

// Vérifiez si l'extraction d'images est prise en charge
if (images == null) {
    System.out.println("Images extraction isn't supported");
    return;
}

// Itérer sur les images
for (PageImageArea image : images) {
    // Print a page index, rectangle and image type:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}
Obtenir des images à partir de documents PDF en utilisant Java

Obtenir des images à partir de documents PDF à l’aide de Java

Extraire des images d’une page spécifique d’un document PDF à l’aide de Java

Nous pouvons extraire des images d’une page spécifique en suivant les étapes simples mentionnées ci-dessous :

  • Tout d’abord, chargez le fichier PDF à l’aide de la classe Parser.
  • Ensuite, obtenez les informations sur le document à l’aide de la méthode Parser.getDocumentInfo().
  • Ensuite, vérifiez si IDocumentInfo.getPageCount() n’est pas nul.
  • Après cela, appelez la méthode Parser.getImages() avec l’index de la page pour extraire les images de cette page spécifique.
  • Enfin, parcourez toutes les images trouvées et affichez les détails.

L’exemple de code suivant montre comment extraire des images d’une page spécifique à l’aide de Java.

// Cet exemple de code montre comment analyser un PDF et obtenir des images à partir d'une page spécifique.
// Créer une instance de la classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Obtenir les informations sur le document
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Vérifiez si le document contient des pages
if (documentInfo.getPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

int pageIndex = 1;

// Itérer sur les images
// Nous ignorons la vérification nulle car nous avons vérifié la prise en charge de la fonction d'extraction d'images plus tôt
for (PageImageArea image : parser.getImages(pageIndex)) {
  // Print a page index, rectangle and image type:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}

Extraire et enregistrer des images dans des fichiers à l’aide de Java

Nous pouvons également enregistrer les images extraites en suivant les étapes ci-dessous :

  • Tout d’abord, chargez le fichier PDF à l’aide de la classe Parser.
  • Ensuite, appelez la méthode Parser.getImages() et obtenez la collection d’objets PageImageArea à partir du document chargé.
  • Ensuite, créez une instance de la classe ImageOptions et définissez le format de l’image.
  • Après cela, parcourez toutes les images trouvées.
  • Enfin, enregistrez en utilisant la méthode save(). Il prend le chemin du fichier de sortie et ImageOptions comme arguments.

L’exemple de code suivant montre comment extraire et enregistrer des images dans des fichiers à l’aide de Java.

// Cet exemple de code montre comment extraire et images dans le répertoire.
// Créer une instance de la classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Extraire des images du document
Iterable<PageImageArea> images = parser.getImages();

// Vérifiez si l'extraction d'images est prise en charge
if (images == null) {
    System.out.println("Page images extraction isn't supported");
    return;
}

// 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
for (PageImageArea image : images)
{
    // Save the image to the PNG file
    image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
    imageNumber++;
}
Extraire et enregistrer des images dans des fichiers à l'aide de Java

Extraire et enregistrer des images dans des fichiers à l’aide de Java

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limites d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, nous avons appris à :

  • extraire tout le texte d’un document PDF entier ou de pages spécifiques du document à l’aide de Java ;
  • extraire des images d’un fichier PDF par programmation ;
  • enregistrer les images extraites sur un disque local.

En outre, vous pouvez en savoir plus sur l’API GroupDocs.Parser pour Java en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également