PDF הוא אחד מפורמטי המסמכים השולטים בימים אלה. הוא תומך בטקסט, גרפיקה, טבלאות, הערות ומגוון אלמנטים אחרים. במקרים מסוימים, ייתכן שיהיה עליך לחלץ נתונים מהטבלאות במסמכי PDF כגון חשבוניות. כדי להשיג זאת באופן פרוגרמטי, המאמר מכסה כיצד לחלץ נתונים מטבלאות ב-PDF באמצעות Java.
ספריית Java לחילוץ טבלת PDF
כדי לחלץ טבלאות בקבצי PDF, נשתמש ב-Aspose.PDF עבור Java. זוהי ספרייה עשירה בתכונות ליצירה וטיפול במסמכי 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>22.12</version>
</dependency>
חלץ טבלאות מקובץ PDF ב-Java
להלן השלבים לחילוץ טבלאות ב-PDF ב-Java.
- ראשית, טען את מסמך ה-PDF באמצעות המחלקה Document.
- עברו בלולאה בין הדפים ב-PDF באמצעות אוסף Document.getPages().
- בכל איטרציה, אתחול האובייקט TableAbsorber ובקר בדף הנבחר באמצעות שיטת TableAbsorber.visit(Page).
- בלולאה מקוננת, חזור על רשימת הטבלאות באוסף TableAbsorber.getTableList().
- עבור כל AbsorbedTable באוסף, חזור על אוסף השורות מ-AbsorbedTable.getRowList().
- עבור כל AbsorbedRow באוסף, חזור על אוסף התאים מ-AbsorbedRow.getCellList().
- לבסוף, עברו בלולאה באוסף TextFragment של כל AbsorbedCell והדפיסו את הטקסט.
דוגמת הקוד הבאה מראה כיצד לחלץ טבלה ב-PDF באמצעות Java.
// טען מסמך PDF מקור
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("sample.pdf");
// צור שוחק שולחן
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.
- ראשית, טען את מסמך ה-PDF באמצעות המחלקה Document.
- לאחר מכן, בחר את Page הרצוי מאוסף Document.getPages().
- חלץ את הערת הריבוע של הדף.
- בכל איטרציה, אתחול האובייקט TableAbsorber ובקר בדף הנבחר באמצעות שיטת TableAbsorber.visit(Page).
- בלולאה מקוננת, חזור על רשימת הטבלאות באוסף TableAbsorber.getTableList().
- בדוק אם הטבלה הנספגת נמצאת באזור העמוד הרצוי.
- עבור כל AbsorbedTable באוסף, חזור על אוסף השורות באמצעות AbsorbedTable.getRowList().
- עבור כל AbsorbedRow באוסף, חזור על אוסף התאים באמצעות AbsorbedRow.getCellList().
- לבסוף, עברו בלולאה באוסף TextFragment של כל AbsorbedCell והדפיסו את הטקסט.
דוגמת הקוד הבאה מראה כיצד לחלץ טבלאות מאזור ספציפי של דף ה-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();
}
}
}
}
}
ספריית Java PDF בחינם לחילוץ טבלאות
אתה יכול לקבל [רישיון זמני] בחינם28 לחילוץ טבלאות מקובץ PDF ללא כל הגבלה.
חקור את ספריית Java PDF
אתה יכול ללמוד עוד על ספריית Java PDF באמצעות תיעוד. בנוסף, אתה יכול לשאול את השאלות שלך דרך הפורום שלנו.
סיכום
במאמר זה, למדת כיצד לחלץ טבלאות ב-PDF באמצעות Java. יתר על כן, המאמר סיקר כיצד לחלץ טבלאות מאזור ספציפי של הדף ב-PDF. אתה יכול להשתמש בקלות בספריית ה-PDF שלנו ובדוגמאות הקוד שסופקו ביישום שלך.