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