วิธีทำการสกัดตาราง PDF ด้วย Java ด้วย GroupDocs.Parser
ในบทแนะนำที่ครอบคลุมนี้ คุณจะได้ค้นพบวิธีการทำ java pdf table extraction ด้วยไลบรารี GroupDocs.Parser ไม่ว่าคุณจะต้องการดึงตารางทางการเงิน รายการบิล หรือข้อมูลการวิจัย คู่มือนี้จะพาคุณผ่านการตรวจสอบการสนับสนุนเอกสาร การกำหนดรูปแบบตารางที่แม่นยำ และการสกัดข้อมูลอย่างมีประสิทธิภาพสำหรับการประมวลผลต่อใน Java
คำตอบด่วน
- GroupDocs.Parser สามารถอ่านตารางจาก PDF ได้หรือไม่? ใช่ – มันให้การสกัดตารางแบบเนทีฟสำหรับ PDF และหลายรูปแบบอื่น ๆ.
- ฉันต้องการไลเซนส์สำหรับการพัฒนาหรือไม่? คุณสามารถเริ่มต้นด้วยการทดลองใช้งานฟรี; จำเป็นต้องมีไลเซนส์สำหรับการใช้งานในสภาพแวดล้อมการผลิต.
- ต้องการเวอร์ชัน Java ใด? JDK 8 หรือสูงกว่า.
- Maven เป็นวิธีเดียวในการเพิ่มไลบรารีหรือไม่? ไม่ – คุณสามารถดาวน์โหลดไฟล์ JAR โดยตรงได้เช่นกัน.
- วิธีนี้ทำงานกับไฟล์ที่มีการป้องกันด้วยรหัสผ่านหรือไม่? ใช่ เพียงแค่ส่งรหัสผ่านเมื่อสร้างอินสแตนซ์
Parser.
java pdf table extraction คืออะไร?
Java pdf table extraction คือกระบวนการอ่านโครงสร้างตารางที่ฝังอยู่ในไฟล์ PDF (หรือ Word) อย่างโปรแกรมโดยใช้โค้ด Java GroupDocs.Parser ทำหน้าที่แยกการแปลงระดับต่ำและส่งคืนแต่ละเซลล์เป็นข้อความธรรมดา พร้อมสำหรับการวิเคราะห์หรือการนำเข้าฐานข้อมูล รองรับทั้ง PDF ที่สแกนและ PDF แบบเนทีฟ จัดการกับเซลล์ที่รวมกันและตารางหลายหน้าโดยไม่ต้องตั้งค่าเพิ่มเติม
ทำไมต้องใช้ GroupDocs.Parser สำหรับการสกัดตาราง?
GroupDocs.Parser รองรับ รูปแบบอินพุตและเอาต์พุตกว่า 50 ประเภท—รวมถึง PDF, DOCX, PPTX, และ HTML—ทำให้คุณสามารถใช้ API เดียวกันกับหลายประเภทเอกสาร การสกัดแบบอิงเลย์เอาต์ให้ ความแม่นยำสูงถึง 98 % กับตารางที่ซับซ้อน และไลบรารีสามารถประมวลผล PDF หลายร้อยหน้าโดยใช้สตรีมมิ่งเพื่อให้การใช้หน่วยความจำต่ำกว่า 200 MB
ข้อกำหนดเบื้องต้น
- ติดตั้ง Java Development Kit (JDK) 8+
- Maven (หรือการจัดการ JAR ด้วยตนเอง) สำหรับการจัดการ dependencies
- มีความคุ้นเคยพื้นฐานกับไวยากรณ์ Java และแนวคิดเชิงวัตถุ
การตั้งค่า GroupDocs.Parser สำหรับ Java
การตั้งค่า Maven
หากคุณจัดการ dependencies ด้วย Maven ให้เพิ่ม repository และ dependency ลงในไฟล์ pom.xml ของคุณ:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
ดาวน์โหลดโดยตรง
หรือคุณสามารถดาวน์โหลดเวอร์ชันล่าสุดโดยตรงจาก GroupDocs.Parser for Java releases. ทำตามคำแนะนำการติดตั้งที่ให้ไว้บนเว็บไซต์ของพวกเขา
การรับไลเซนส์
เพื่อเข้าถึงคุณสมบัติทั้งหมดของ GroupDocs.Parser พิจารณาได้รับไลเซนส์ คุณสามารถเริ่มต้นด้วยการทดลองใช้งานฟรีหรือรับไลเซนส์ชั่วคราวโดยทำตามขั้นตอนบน purchase page
เมื่อทุกอย่างตั้งค่าเรียบร้อยแล้ว เรามาเริ่มการทำ java pdf table extraction จริงกัน
คู่มือการดำเนินการ
การตรวจสอบการสนับสนุนเอกสารสำหรับการสกัดตาราง
เอกสารนี้รองรับการสกัดตารางหรือไม่?
คุณต้องยืนยันว่าไฟล์เป้าหมายสามารถประมวลผลตารางได้ GroupDocs.Parser มีฟีเจอร์ฟล็อกที่บอกว่าการสกัดตารางพร้อมใช้งานสำหรับรูปแบบที่กำหนดหรือไม่ เพื่อป้องกันข้อผิดพลาดที่ไม่จำเป็นในระหว่างรันไทม์
- การเริ่มต้น Parser: คลาส
Parserเป็นจุดเริ่มต้นที่โหลดเอกสารเข้าสู่หน่วยความจำ - การตรวจสอบฟีเจอร์: เรียก
parser.getFeatures().isTables(); จะคืนค่าtrueเมื่อการสกัดตารางได้รับการสนับสนุน
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
public class TableExtractionCheck {
public static void main(String[] args) {
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/your_document.pdf")) {
// Check if the document supports table extraction.
if (!parser.getFeatures().isTables()) {
System.out.println("Document doesn't support table extraction.");
} else {
System.out.println("Document supports table extraction. Proceeding...");
extractTablesFromDocument();
}
}
}
}
การสร้างเลย์เอาต์ตารางสำหรับการสกัด
คุณกำหนดเลย์เอาต์ตารางที่แม่นยำอย่างไร?
เลย์เอาต์บอกให้เอนจินรู้ว่าคอลัมน์และแถวเริ่มต้นที่ตำแหน่งใด ซึ่งสำคัญสำหรับ PDF ที่ซับซ้อนที่การตรวจจับอัตโนมัติอาจพลาดเซลล์ที่รวมกันหรือช่องว่างที่ไม่สม่ำเสมอ
- พิกัดคอลัมน์และแถว: ระบุตำแหน่งเริ่มต้น/สิ้นสุดของแกน X สำหรับแต่ละคอลัมน์และตำแหน่งแกน Y สำหรับแต่ละแถว
- TemplateTableLayout: อ็อบเจ็กต์นี้เก็บแผนที่พิกัดและจะถูกส่งต่อไปยังการเรียกสกัดในภายหลัง
import com.groupdocs.parser.templates.TemplateTableLayout;
public class TableExtractionSetup {
public static TemplateTableLayout createTemplateTableLayout() {
return new TemplateTableLayout(
java.util.Arrays.asList(new Double[]{50.0, 95.0, 275.0, 415.0, 485.0, 545.0}),
java.util.Arrays.asList(new Double[]{325.0, 340.0, 365.0, 395.0})
);
}
}
การสกัดตารางจากหน้าของเอกสาร
ขั้นตอนการสกัดตารางเป็นอย่างไร?
หลังจากยืนยันการสนับสนุนและกำหนดเลย์เอาต์แล้ว คุณจะวนลูปผ่านแต่ละหน้า ขอข้อมูลตาราง และเก็บผลลัพธ์ไว้ในคอลเลกชันของ Java เพื่อการประมวลผลต่อไป
- การวนลูปหน้า: ใช้
parser.getPages()เพื่อจัดการกับ PDF หลายหน้า - การสกัดตาราง: ใช้
parser.getTables(pageIndex, options)โดยoptionsจะรวมเลย์เอาต์ที่กำหนดไว้ก่อนหน้า
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageTableArea;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.options.PageTableAreaOptions;
public class TableExtractionProcess {
public static void extractTablesFromDocument() {
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/your_document.pdf")) {
IDocumentInfo documentInfo = parser.getDocumentInfo();
if (documentInfo.getPageCount() > 0) {
PageTableAreaOptions options = new PageTableAreaOptions(TableExtractionSetup.createTemplateTableLayout());
for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
Iterable<PageTableArea> tables = parser.getTables(pageIndex, options);
for (PageTableArea table : tables) {
for (int row = 0; row < table.getRowCount(); row++) {
for (int column = 0; column < table.getColumnCount(); column++) {
PageTableAreaCell cell = table.getCell(row, column);
if (cell != null) {
System.out.print(cell.getText() + " | ");
}
}
System.out.println();
}
System.out.println();
}
}
} else {
System.out.println("Document has no pages.");
}
}
}
}
การประยุกต์ใช้จริงของ java pdf table extraction
การนำการสกัดตารางไปใช้สามารถเป็นประโยชน์ในหลายสถานการณ์จริง:
- การวิเคราะห์ข้อมูล: ดึงข้อมูลโครงสร้างจากรายงานการเงินหรือบทความวิทยาศาสตร์เพื่อการวิเคราะห์ต่อไป
- การประมวลผลใบแจ้งหนี้: อัตโนมัติการสกัดรายการจากใบแจ้งหนี้และป้อนข้อมูลเข้าสู่ระบบบัญชี
- การจัดการเอกสาร: ทำดัชนีข้อมูลตารางที่สกัดพร้อมกับเนื้อหาเต็มข้อความเพื่อปรับปรุงการค้นหาในโซลูชัน DMS
การพิจารณาด้านประสิทธิภาพ
เพื่อให้ได้ประสิทธิภาพสูงสุดเมื่อใช้ GroupDocs.Parser:
- เพิ่มประสิทธิภาพการใช้หน่วยความจำ: จัดสรร heap ที่เพียงพอ (เช่น
-Xmx2g) สำหรับ PDF ขนาดใหญ่ - การประมวลผลเป็นชุด: รวมหลายเอกสารในงานเดียวเพื่อลดค่าใช้จ่ายการอุ่น JVM
- เลย์เอาต์ที่มีประสิทธิภาพ: การกำหนดพิกัดที่แม่นยำช่วยลดพื้นที่สแกน ทำให้การสกัดเร็วขึ้นสูงสุดถึง 30 %
ปัญหาทั่วไปและวิธีแก้
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| ไม่มีตารางที่ส่งคืน | พิกัดเลย์เอาต์ไม่ตรงกับตำแหน่งตารางจริง | ตรวจสอบพิกัดคอลัมน์/แถวกับ PDF โดยใช้ไม้บรรทัดของโปรแกรมดูไฟล์ |
| ข้อผิดพลาดหน่วยความจำไม่พอ | เอกสารขนาดใหญ่มากถูกโหลดทั้งหมด | ใช้โหมดสตรีมมิ่งหรือเพิ่ม heap ของ JVM (-Xmx) |
| เซลล์ว่าง | ตารางมีเซลล์ที่รวมกันซึ่งไม่ได้ครอบคลุมโดยเลย์เอาต์ | ปรับเลย์เอาต์ให้รวมขอบเขตของเซลล์ที่รวมกัน หรือใช้การสกัดแบบเริ่มต้นโดยไม่มีเลย์เอาต์ |
คำถามที่พบบ่อย
Q: สามารถสกัดตารางจากรูปแบบเอกสารอื่นได้หรือไม่?
A: ใช่, GroupDocs.Parser รองรับ DOCX, PPTX, TXT และรูปแบบอื่น ๆ อีกมากมาย ดูเอกสารอย่างเป็นทางการเพื่อรายการเต็ม
Q: จำเป็นต้องมีไลเซนส์สำหรับการสร้างรุ่นพัฒนาไหม?
A: ไลเซนส์ทดลองใช้งานฟรีเพียงพอสำหรับการพัฒนาและทดสอบ ไลเซนส์เชิงพาณิชย์จำเป็นสำหรับการใช้งานในสภาพแวดล้อมการผลิต
Q: GroupDocs.Parser จัดการกับ PDF ที่ป้องกันด้วยรหัสผ่านอย่างไร?
A: ส่งรหัสผ่านเมื่อสร้างอ็อบเจ็กต์ Parser เช่น new Parser(filePath, password) ไลบรารีจะถอดรหัสไฟล์โดยอัตโนมัติ
Q: สามารถสกัดตารางโดยไม่กำหนดเลย์เอาต์ได้หรือไม่?
A: ได้, คุณสามารถเรียก parser.getTables(pageIndex) โดยไม่มี options แต่การสกัดแบบอิงเลย์เอาต์ให้ความแม่นยำสูงกว่าสำหรับตารางที่ซับซ้อน
Q: เวอร์ชันของ GroupDocs.Parser ที่เข้ากันได้กับ Java 11 คืออะไร?
A: เวอร์ชัน 25.5 (ใช้ในคู่มือนี้) รองรับ Java 8‑17 อย่างเต็มที่ รวมถึง Java 11
สรุป
คุณตอนนี้มีวิธีการที่พร้อมใช้งานในระดับการผลิตสำหรับ java pdf table extraction ด้วย GroupDocs.Parser โดยการตรวจสอบความสามารถของเอกสาร, กำหนด TemplateTableLayout แบบกำหนดเอง, และวนลูปผ่านหน้า คุณสามารถดึงข้อมูลโครงสร้างได้อย่างเชื่อถือได้สำหรับกระบวนการทำงานต่อใน Java ใด ๆ
ขั้นตอนต่อไป
- สำรวจคุณลักษณะขั้นสูงเช่น table merging, cell formatting, และ export to CSV ใน documentation.
- ทดลองกำหนดค่าเลย์เอาต์ที่แตกต่างกันเพื่อจัดการกับการออกแบบตารางที่หลากหลายในคอลเลกชันเอกสารของคุณ
อัปเดตล่าสุด: 2026-09-17
ทดสอบด้วย: GroupDocs.Parser 25.5 for Java
ผู้เขียน: GroupDocs