DEV Community

Liam Anderson
Liam Anderson

Posted on

Lire rapidement ou extraire du texte à partir d'un PDF en Java

Extraire du texte vous permet de récupérer des informations spécifiques, telles que des noms, des adresses ou des numéros, à partir d'un grand nombre de documents PDF. Cela est particulièrement utile pour des tâches telles que la saisie de données, l'analyse de données, la population de bases de données ou l'intégration avec d'autres systèmes. Ce guide expliquera comment lire ou extraire du texte à partir d'un PDF en Java.

Les sujets suivants seront abordés :

  • Extraire du texte à partir d'un fichier PDF en Java
  • Extraire du texte d'une page spécifique dans un fichier PDF en Java
  • Extraire du texte d'une zone rectangulaire particulière d'une page dans un fichier PDF en Java

Bibliothèque Java pour lire les PDF

Pour extraire du texte à partir de fichiers PDF, cet article utilise une bibliothèque externe appelée Spire.PDF for Java. Il s'agit d'une bibliothèque multifonctionnelle qui permet de créer, lire, écrire et manipuler des documents PDF dans des applications Java. Elle offre de nombreuses fonctionnalités, notamment la conversion de PDF, la fusion et la division de PDF, le chiffrement et le déchiffrement de PDF, le remplissage de formulaires PDF, et bien d'autres encore.

Vous pouvez facilement importer le fichier jar de Spire.PDF for Java dans votre projet en ajoutant les configurations suivantes à votre fichier pom.xml de projet :

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>9.6.2</version>
    </dependency>
</dependencies>
Enter fullscreen mode Exit fullscreen mode

Vous pouvez également télécharger Spire.PDF for Java à partir de son site officiel, décompresser le package, et ensuite importez manuellement le fichier Spire.Pdf.jar depuis le dossier lib dans votre projet.

Extraire du texte à partir d'un fichier PDF en Java

Le code suivant montre comment extraire du texte à partir d'un fichier PDF en utilisant Java et l'API Spire.PDF for Java :

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextExtractOptions;
import com.spire.pdf.texts.PdfTextExtractor;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ExtractTextFromPdf {
    public static void main(String[] args) throws IOException {
        // Créer un objet PdfDocument
        PdfDocument doc = new PdfDocument();

    // Charger un fichier PDF
    doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Conditions d'utilisation.pdf");

    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < doc.getPages().getCount(); i++) {
        PdfPageBase page = doc.getPages().get(i);
        // Créer un objet PdfTextExtractor
        PdfTextExtractor textExtractor = new PdfTextExtractor(page);

        // Créer un objet PdfTextExtractOptions
        PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

        // Extraire le texte de chaque page
        String text = textExtractor.extract(extractOptions);
        sb.append(text);
    }

    // Écrire dans un fichier txt
    Files.write(Paths.get("output/Extraits.txt"), sb.toString().getBytes());
    }
}
Enter fullscreen mode Exit fullscreen mode

Extraire du texte d'une page spécifique dans un fichier PDF en Java

Le code suivant montre comment extraire du texte d'une page spécifique d'un fichier PDF en utilisant Java et l'API Spire.PDF for Java :

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextExtractOptions;
import com.spire.pdf.texts.PdfTextExtractor;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ExtractTextFromPage {

public static void main(String[] args) throws IOException {

    // Créer un objet PdfDocument
    PdfDocument doc = new PdfDocument();

    // Charger un fichier PDF
    doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Conditions d'utilisation.pdf");

    // Obtenir la deuxième page
    PdfPageBase page = doc.getPages().get(1);

    // Créer un objet PdfTextExtractor
    PdfTextExtractor textExtractor = new PdfTextExtractor(page);

    // Créer un objet PdfTextExtractOptions
    PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

    // Extraire le texte de la page
    String text = textExtractor.extract(extractOptions);

    // Écrire dans un fichier txt
    Files.write(Paths.get("output/Extraits.txt"), text.getBytes());
    }
}
Enter fullscreen mode Exit fullscreen mode

Extraire du texte d'une zone rectangulaire particulière d'une page dans un fichier PDF en Java

Le code suivant montre comment extraire du texte d'une zone rectangulaire particulière d'une page dans un fichier PDF en utilisant Java et l'API Spire.PDF for Java :

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextExtractOptions;
import com.spire.pdf.texts.PdfTextExtractor;

import java.awt.geom.Rectangle2D;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ExtractFromRectangleArea {

public static void main(String[] args) throws IOException {

    // Créer un objet PdfDocument
    PdfDocument doc = new PdfDocument();

    // Charger un fichier PDF
    doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Conditions d'utilisation.pdf");

    // Obtenir la deuxième page
    PdfPageBase page = doc.getPages().get(1);

    // Créer un objet PdfTextExtractor
    PdfTextExtractor textExtractor = new PdfTextExtractor(page);

    // Créer un objet PdfTextExtractOptions
    PdfTextExtractOptions extractOptions = new PdfTextExtractOptions();

    // Définir l'option pour extraire le texte d'une zone rectangulaire
    Rectangle2D rectangle2D = new Rectangle2D.Float(0, 0, 890, 170);
    extractOptions.setExtractArea(rectangle2D);

    // Extraire le texte de la zone spécifiée
    String text = textExtractor.extract(extractOptions);

    // Écrire dans un fichier txt
    Files.write(Paths.get("output/Extraits.txt"), text.getBytes());
    }
}
Enter fullscreen mode Exit fullscreen mode

Conclusion

Dans cet article, nous avons appris à lire ou à extraire du texte à partir d'un fichier PDF en Java avec Spire.PDF for Java. Si vous travaillez avec des fichiers PDF dans votre application Java, Spire.PDF for Java vaut vraiment le détour.

Sujets connexes

Extraire des images d'un PDF en Java
Créer un fichier PDF en Java
Chiffrer ou déchiffrer des fichiers PDF en Java
Ajouter ou supprimer des signatures numériques dans un PDF en Java

Top comments (0)