Estrai dati dalla tabella in PDF Java

PDF è uno dei formati di documenti normativi di questi tempi. Supporta testo, grafica, tabelle, annotazioni e una serie di altri elementi. In alcuni casi, potrebbe essere necessario estrarre i dati dalle tabelle nei documenti PDF come le fatture. Per raggiungere questo obiettivo a livello di codice, l’articolo illustra come estrarre i dati dalle tabelle in PDF utilizzando Java.

Estrai dati da tabelle in PDF - API Java

Aspose.PDF for Java è un’API ricca di funzionalità per la creazione e la manipolazione di documenti PDF. Useremo questa API per estrarre i dati dalle tabelle nei documenti PDF. Puoi scaricare il JAR dell’API o installarlo all’interno della tua applicazione Java utilizzando le seguenti configurazioni Maven.

<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>

Estrazione dati da tabelle in PDF in Java

Di seguito sono riportati i passaggi per estrarre i dati dalle tabelle in un PDF utilizzando Java.

L’esempio di codice seguente mostra come estrarre il testo dalle tabelle in PDF utilizzando Java.

// Carica il documento PDF di origine
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Crea un assorbitore di tavoli
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();

// Scansiona le pagine
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
    
    // Visita la pagina
    absorber.visit(page);
  
    // Scorri le tabelle
    for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
        System.out.println("Table");
        
        // Iterare l'elenco di righe
        for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
            
            // Iterare l'elenco di celle
            for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
                
                // Scorri i frammenti di testo
                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: estrai i dati della tabella da un’area specifica della pagina PDF

Di seguito sono riportati i passaggi per estrarre la tabella da una parte specifica della pagina in un PDF utilizzando Java.

L’esempio di codice seguente mostra come estrarre le tabelle da un’area specifica della pagina PDF.

// Carica il documento PDF di origine
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Ottieni il riferimento della pagina desiderata
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);

// Crea un selettore di annotazioni
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
        new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));

// Ottieni l'elenco delle annotazioni
java.util.List<com.aspose.pdf.Annotation> list = annotationSelector.getSelected();
if (list.size() == 0) {
    System.out.println("Marked tables not found..");
    return;
}

// Crea un'annotazione quadrata
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);

// Crea l'assorbitore della tabella e visita la pagina
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);

// Scorri le tabelle
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
    {
        // Verifica che la tabella esista
        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();
                }
            }
        }
    }
}

Ottieni una licenza gratuita

È possibile utilizzare Aspose.PDF per Java senza limitazioni di valutazione utilizzando una licenza temporanea.

Conclusione

In questo articolo, hai imparato come estrarre i dati dalle tabelle in un PDF usando Java. Inoltre, l’articolo spiegava come estrarre le tabelle da una specifica regione della pagina in PDF. Inoltre, puoi saperne di più su Aspose.PDF per Java utilizzando la documentazione. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche