استخراج البيانات من الجدول في PDF جافا

PDF هو أحد تنسيقات الوثائق الحاكمة هذه الأيام. وهو يدعم النصوص والرسومات والجداول والشروح ومجموعة من العناصر الأخرى. في حالات معينة ، قد تحتاج إلى استخراج البيانات من الجداول في مستندات PDF مثل الفواتير. لتحقيق هذا برمجيًا ، تتناول المقالة كيفية استخراج البيانات من الجداول في PDF باستخدام Java.

استخراج البيانات من الجداول في PDF - Java API

Aspose.PDF for Java هي واجهة برمجة تطبيقات غنية بالمميزات لإنشاء مستندات PDF ومعالجتها. سنستخدم واجهة برمجة التطبيقات هذه لاستخراج البيانات من الجداول في مستندات PDF. يمكنك إما تنزيل JAR الخاص بواجهة برمجة التطبيقات أو تثبيته داخل تطبيق Java الخاص بك باستخدام تكوينات 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>

استخراج البيانات من الجداول في PDF بجافا

فيما يلي خطوات استخراج البيانات من الجداول في ملف PDF باستخدام Java.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج النص من الجداول في PDF باستخدام Java.

// تحميل مستند PDF المصدر
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// قم بإنشاء طاولة absrober
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();

// مسح الصفحات
for (com.aspose.pdf.Page page : pdfDocument.getPages()) {
    
    // صفحة الزيارة
    absorber.visit(page);
  
    // كرر من خلال الجداول
   for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
        System.out.println("Table");
        
        // تكرار خلال قائمة الصفوف
       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();
        }
    }
}

Java: استخراج بيانات الجدول من منطقة معينة من صفحة PDF

فيما يلي خطوات استخراج الجدول من جزء معين من الصفحة في ملف PDF باستخدام Java.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الجداول من منطقة معينة في صفحة PDF.

// تحميل مستند PDF المصدر
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");

// احصل على مرجع للصفحة المطلوبة
com.aspose.pdf.Page page = pdfDocument.getPages().get_Item(1);

// إنشاء محدد التعليقات التوضيحية
com.aspose.pdf.AnnotationSelector annotationSelector = new com.aspose.pdf.AnnotationSelector(
        new com.aspose.pdf.SquareAnnotation(page, com.aspose.pdf.Rectangle.getTrivial()));

// احصل على قائمة بالتعليقات التوضيحية
java.util.List<com.aspose.pdf.Annotation> list = annotationSelector.getSelected();
if (list.size() == 0) {
    System.out.println("Marked tables not found..");
    return;
}

// أنشئ تعليقًا توضيحيًا مربعًا
com.aspose.pdf.SquareAnnotation squareAnnotation = (com.aspose.pdf.SquareAnnotation) list.get(0);

// إنشاء طاولة امتصاص وزيارة الصفحة
com.aspose.pdf.TableAbsorber absorber = new com.aspose.pdf.TableAbsorber();
absorber.visit(page);

// كرر من خلال الجداول
for (com.aspose.pdf.AbsorbedTable table : absorber.getTableList()) {
    {
        // تحقق من وجود الجدول
        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();
                }
            }
        }
    }
}

احصل على رخصة مجانية

يمكنك استخدام Aspose.PDF لـ Java بدون قيود تقييمية باستخدام ترخيص مؤقت.

استنتاج

في هذه المقالة ، تعلمت كيفية استخراج البيانات من الجداول في ملف PDF باستخدام Java. علاوة على ذلك ، تناول المقال كيفية استخراج الجداول من منطقة معينة من الصفحة في ملف PDF. علاوة على ذلك ، يمكنك معرفة المزيد حول Aspose.PDF لجافا باستخدام التوثيق. بالإضافة إلى ذلك ، يمكنك طرح أسئلتك عبر المنتدى.

أنظر أيضا