Lire rapidement ou extraire du texte à partir d'un PDF en Java
Tags: java, text, pdf
Published: 2023-06-30 07:22:24

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](https://www.e-iceblue.com/Introduce/pdf-for-java.html). 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 :
```java
<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>
```

Vous pouvez également [télécharger](https://www.e-iceblue.com/Download/pdf-for-java.html) 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 :
```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());
    }
}
```

## 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 :
```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());
    }
}
```

## 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 :
```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());
    }
}
```

## 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](https://www.e-iceblue.com/Tutorials/JAVA/Spire.PDF-for-JAVA/Program-Guide/Extract/Read/Extract-Images-from-PDF-in-Java.html)
[Créer un fichier PDF en Java](https://www.e-iceblue.com/Tutorials/Spire.PDF-for-JAVA/Spire.PDF-Program-Guide-JAVA/Document-Operation/Create-a-PDF-Document-in-Java.html)
[Chiffrer ou déchiffrer des fichiers PDF en Java](https://www.e-iceblue.com/Tutorials/JAVA/Spire.PDF-for-JAVA/Program-Guide/Security/Encrypt-and-Decrypt-PDF-in-Java.html)
[Ajouter ou supprimer des signatures numériques dans un PDF en Java](https://www.e-iceblue.com/Tutorials/Java/Spire.PDF-for-Java/Program-Guide/Security/Add-Digital-Signature-to-PDF-in-Java.html)