PDF est l’un des formats de document dominants de nos jours. Il prend en charge le texte, les graphiques, les tableaux, les annotations et une gamme d’autres éléments. Dans certains cas, vous devrez peut-être extraire des données des tableaux dans des documents PDF tels que des factures. Pour y parvenir par programmation, l’article explique comment extraire des données de tables au format PDF à l’aide de Java.
- API Java pour extraire des données de tableaux au format PDF
- Extraire des données de tableaux au format PDF
- Extraire le tableau d’une zone spécifique de la page
Extraire des données de tableaux au format PDF - API Java
Aspose.PDF for Java est une API riche en fonctionnalités pour créer et manipuler des documents PDF. Nous utiliserons cette API pour extraire les données des tableaux dans les documents PDF. Vous pouvez soit télécharger le JAR de l’API, soit l’installer dans votre application Java en utilisant les configurations Maven suivantes.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.9</version>
</dependency>
Extraction de données à partir de tableaux en PDF en Java
Voici les étapes pour extraire des données de tables dans un PDF à l’aide de Java.
- Commencez par charger le document PDF à l’aide de la classe Document.
- Parcourez les pages du PDF à l’aide de la collection Document.getPages().
- À chaque itération, initialisez l’objet TableAbsorber et visitez la page sélectionnée à l’aide de la méthode TableAbsorber.visit(Page).
- Dans une boucle imbriquée, parcourez la liste des tables de la collection TableAbsorber.getTableList().
- Pour chaque AbsorbedTable de la collection, parcourez la collection de lignes de AbsorbedTable.getRowList().
- Pour chaque AbsorbedRow de la collection, parcourez la collection de cellules de AbsorbedRow.getCellList().
- Enfin, parcourez la collection TextFragment de chaque AbsorbedCell et imprimez le texte.
L’exemple de code suivant montre comment extraire du texte de tableaux au format PDF à l’aide de Java.
// Charger le document PDF source
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");
// Créer un absrober de table
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
// Numériser des pages
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
// Visitez la page
absorber.visit(page);
// Itérer dans les tables
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
System.out.println("Table");
// Itérer dans la liste des lignes
for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
// Itérer dans la liste de cellules
for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
// Itérer à travers des fragments de texte
for (com.aspose.pdf.TextFragment fragment : cell.getTextFragments()) {
StringBuilder sb = new StringBuilder();
for (com.aspose.pdf.TextSegment seg : fragment.getSegments())
sb.append(seg.getText());
System.out.print(sb.toString() + "|");
}
}
System.out.println();
}
}
}
Java : Extraire des données de tableau d’une zone spécifique d’une page PDF
Voici les étapes pour extraire le tableau d’une partie spécifique de la page dans un PDF en utilisant Java.
- Commencez par charger le document PDF à l’aide de la classe Document.
- Ensuite, sélectionnez la Page souhaitée dans la collection Document.getPages().
- Extrayez l’annotation carrée de la page.
- À chaque itération, initialisez l’objet TableAbsorber et visitez la page sélectionnée à l’aide de la méthode TableAbsorber.visit(Page).
- Dans une boucle imbriquée, parcourez la liste des tables de la collection TableAbsorber.getTableList().
- Vérifiez si le tableau absorbé se trouve dans la région de page souhaitée.
- Pour chaque AbsorbedTable de la collection, parcourez la collection de lignes à l’aide de AbsorbedTable.getRowList().
- Pour chaque AbsorbedRow de la collection, parcourez la collection de cellules à l’aide de AbsorbedRow.getCellList().
- Enfin, parcourez la collection TextFragment de chaque AbsorbedCell et imprimez le texte.
L’exemple de code suivant montre comment extraire des tableaux d’une région spécifique de la page PDF.
// Charger le document PDF source
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");
// Obtenir la référence de la page souhaitée
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);
// Créer un sélecteur d'annotations
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));
// Obtenir la liste des annotations
java.util.List<com.aspose.pdf.Annotation> list = annotationSelector.getSelected();
if (list.size() == 0) {
System.out.println("Marked tables not found..");
return;
}
// Créer une annotation carrée
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);
// Créer un absorbeur de table et visiter la page
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);
// Itérer dans les tables
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
{
// Vérifier si la table existe
boolean isInRegion = (squareAnnotation.getRect().getLLX() < table.getRectangle().getLLX())
&& (squareAnnotation.getRect().getLLY() < table.getRectangle().getLLY())
&& (squareAnnotation.getRect().getURX() > table.getRectangle().getURX())
&& (squareAnnotation.getRect().getURY() > table.getRectangle().getURY());
if (isInRegion) {
for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
{
for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
for (com.aspose.pdf.TextFragment fragment : cell.getTextFragments()) {
StringBuilder sb = new StringBuilder();
for (com.aspose.pdf.TextSegment seg : fragment.getSegments())
sb.append(seg.getText());
System.out.print(sb.toString() + "|");
}
}
System.out.println();
}
}
}
}
}
Obtenez une licence gratuite
Vous pouvez utiliser Aspose.PDF for Java sans limitations d’évaluation à l’aide d’une licence temporaire.
Conclusion
Dans cet article, vous avez appris à extraire des données de tables dans un PDF à l’aide de Java. De plus, l’article expliquait comment extraire des tableaux d’une région spécifique de la page au format PDF. En outre, vous pouvez en savoir plus sur Aspose.PDF for Java en utilisant la documentation. De plus, vous pouvez poser vos questions via notre forum.