PDF Java'da Tablodan Veri Çıkarma

PDF, bugünlerde geçerli olan belge biçimlerinden biridir. Metni, grafikleri, tabloları, ek açıklamaları ve bir dizi başka öğeyi destekler. Belirli durumlarda, faturalar gibi PDF belgelerindeki tablolardan veri almanız gerekebilir. Bunu programlı olarak başarmak için makale, Java kullanarak PDF’deki tablolardan nasıl veri çıkarılacağını kapsar.

PDF’deki Tablolardan Veri Çıkarma - Java API

Aspose.PDF for Java, PDF belgeleri oluşturmak ve değiştirmek için zengin özelliklere sahip bir API’dir. PDF belgelerindeki tablolardan verileri çıkarmak için bu API’yi kullanacağız. API’nin JAR’ını indirebilir veya aşağıdaki Maven yapılandırmalarını kullanarak Java uygulamanıza kurabilirsiniz.

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

Java’da PDF’deki Tablolardan Veri Çıkarma

Java kullanarak bir PDF’deki tablolardan veri ayıklamak için izlenecek adımlar aşağıdadır.

Aşağıdaki kod örneği, Java kullanılarak PDF’deki tablolardan nasıl metin çıkarılacağını gösterir.

// Kaynak PDF belgesini yükle
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// Bir tablo emici oluşturun
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();

// Sayfaları tara
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
    
    // ziyaret sayfası
    absorber.visit(page);
  
    // Tablolar arasında yineleme
   for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
        System.out.println("Table");
        
        // Satır listesini yineleyin
       for (com.aspose.pdf.AbsorbedRow row : table.getRowList()) {
            
            // Hücre listesini yinele
           for (com.aspose.pdf.AbsorbedCell cell : row.getCellList()) {
                
                // Metin parçalarını yineleyin
               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: Tablo Verilerini PDF Sayfasının Belirli Bir Alanından Çıkarın

Aşağıdakiler, Java kullanarak bir PDF’de sayfanın belirli bir bölümünden tablo çıkarma adımlarıdır.

Aşağıdaki kod örneği, tabloların PDF sayfasının belirli bir bölgesinden nasıl çıkarılacağını gösterir.

// Kaynak PDF belgesini yükle
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// İstediğiniz sayfanın referansını alın
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);

// Ek açıklama seçici oluştur
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
        new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));

// Ek açıklamaların listesini alın
java.util.List<com.aspose.pdf.Annotation> list = annotationSelector.getSelected();
if (list.size() == 0) {
    System.out.println("Marked tables not found..");
    return;
}

// Kare açıklama oluşturma
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);

// Tablo emici oluştur ve sayfayı ziyaret et
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);

// Tablolar arasında yineleme
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
    {
        // Tablonun var olup olmadığını kontrol edin
        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();
                }
            }
        }
    }
}

Ücretsiz Lisans Alın

Aspose.PDF for Java’yı geçici lisans kullanarak değerlendirme sınırlamaları olmaksızın kullanabilirsiniz.

Çözüm

Bu makalede, Java kullanarak bir PDF’deki tablolardan nasıl veri çıkarılacağını öğrendiniz. Ayrıca makale, PDF’de sayfanın belirli bir bölgesinden tabloların nasıl çıkarılacağını da kapsıyordu. Ayrıca, belgeleri kullanarak Aspose.PDF for Java hakkında daha fazla bilgi edinebilirsiniz. Ayrıca sorularınızı forumumuz aracılığıyla da sorabilirsiniz.

Ayrıca bakınız