DEV Community

Liam Anderson
Liam Anderson

Posted on

1

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

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay