Extrahujte data z tabulky v PDF Java

PDF je dnes jedním z hlavních formátů dokumentů. Podporuje text, grafiku, tabulky, anotace a řadu dalších prvků. V určitých případech může být nutné extrahovat data z tabulek v dokumentech PDF, jako jsou faktury. Chcete-li toho dosáhnout programově, článek popisuje, jak extrahovat data z tabulek v PDF pomocí Java.

Knihovna Java pro extrahování tabulky PDF

K extrahování tabulek v souborech PDF použijeme Aspose.PDF for Java. Je to knihovna bohatá na funkce pro vytváření a manipulaci s dokumenty PDF. JAR knihovny si můžete stáhnout nebo jej nainstalovat do své Java aplikace pomocí následujících konfigurací 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>22.12</version>
</dependency>

Extrahujte tabulky z PDF v Javě

Následují kroky k extrahování tabulek do PDF v Javě.

Následující ukázka kódu ukazuje, jak extrahovat tabulku v PDF pomocí Java.

// Načíst zdrojový dokument PDF
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Vytvořte absrober tabulky
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();

// Skenujte stránky
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
    
    // Zobrazit stránku
    absorber.visit(page);
  
    // Iterujte tabulky
   for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
        System.out.println("Table");
        
        // Iterujte seznam řádků
       for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
            
            // Iterovat seznam buněk
           for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
                
                // Iterujte fragmenty textu
               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: Extrahujte tabulku PDF z konkrétní oblasti

Následují kroky k extrahování tabulky z určité části stránky v PDF.

Následující ukázka kódu ukazuje, jak extrahovat tabulky z konkrétní oblasti stránky PDF.

// Načíst zdrojový dokument PDF
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Získejte odkaz na požadovanou stránku
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);

// Vytvořte selektor anotací
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
        new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));

// Získejte seznam anotací
java.util.List<com.aspose.pdf.Annotation> list = annotationSelector.getSelected();
if (list.size() == 0) {
    System.out.println("Marked tables not found..");
    return;
}

// Vytvořte čtvercovou anotaci
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);

// Vytvořte absorbér tabulky a navštivte stránku
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);

// Iterujte tabulky
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
    {
        // Zkontrolujte, zda tabulka existuje
        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();
                }
            }
        }
    }
}

Zdarma Java PDF knihovna pro extrahování tabulek

Můžete získat bezplatnou dočasnou licenci pro extrahování tabulek ze souboru PDF bez jakýchkoli omezení.

Prozkoumejte Java PDF Library

Více o Java PDF knihovně se můžete dozvědět pomocí dokumentace. Kromě toho můžete klást své dotazy prostřednictvím našeho fóra.

Závěr

V tomto článku jste se naučili, jak extrahovat tabulky do PDF pomocí Java. Dále se článek zabýval tím, jak extrahovat tabulky z konkrétní oblasti stránky v PDF. Ve své aplikaci můžete snadno použít naši knihovnu PDF a poskytnuté ukázky kódu.

Viz také