วิธีการสกัดตารางจาก PDF ด้วย Java โดยใช้ GroupDocs.Parser

การสกัดตารางจากไฟล์ PDF เป็นความต้องการที่พบบ่อยเมื่อคุณต้องการแปลงเอกสารแบบคงที่ให้เป็นข้อมูลที่มีโครงสร้าง ในบทเรียนนี้เราจะสาธิต วิธีการสกัดตาราง จาก PDF โดยใช้ไลบรารี GroupDocs.Parser สำหรับ Java คุณจะได้เห็นว่าทำไมวิธีนี้จึงเหมาะสำหรับ java pdf table extraction วิธีการกำหนดค่าเลย์เอาต์เพื่อผลลัพธ์ที่แม่นยำ และแม้กระทั่งวิธี export pdf tables csv ในภายหลัง

คำตอบอย่างรวดเร็ว

  • ไลบรารีหลักคืออะไร? GroupDocs.Parser for Java
  • ฉันสามารถสกัดตารางจาก PDF ที่สแกนได้หรือไม่? ได้เฉพาะหลังจากทำ OCR; ดูหมายเหตุ “extract tables scanned pdf” ด้านล่าง
  • ฉันต้องการไลเซนส์หรือไม่? ไลเซนส์ทดลองสามารถใช้งานได้สำหรับการพัฒนา; จำเป็นต้องมีไลเซนส์เต็มสำหรับการผลิต
  • ต้องการเวอร์ชัน Java ใด? Java 8 or higher
  • รองรับการประมวลผลแบบแบตช์หรือไม่? ใช่ – API ถูกปรับให้เหมาะกับการสกัดข้อมูลในระดับใหญ่

“how to extract tables” คืออะไรในบริบทของ PDF?

เมื่อเราพูดถึง how to extract tables เราหมายถึงกระบวนการที่ทำโดยโปรแกรมเพื่อค้นหาโครงสร้างตารางภายใน PDF, แปลความหมายของขอบเซลล์, และดึงเนื้อหาข้อความในรูปแบบที่เครื่องอ่านได้ (เช่น CSV, Excel). GroupDocs.Parser ทำหน้าที่แยกการแปลง PDF ระดับต่ำและให้โมเดลอ็อบเจกต์ที่สะอาดสำหรับการทำงาน

ทำไมต้องใช้ GroupDocs.Parser สำหรับ java pdf table extraction?

  • การตรวจจับเลย์เอาต์ที่แม่นยำ – รองรับตารางหลายคอลัมน์หลายแถวด้วยพิกัดที่กำหนดเอง.
  • มุ่งเน้นประสิทธิภาพ – ทำงานได้ดีกับเอกสารขนาดใหญ่และงานแบตช์.
  • การผสานรวมที่ง่าย – การจัดการ dependencies แบบ Maven และ API ที่ตรงไปตรงมา.
  • ขยายได้ – คุณสามารถรวมกับ GroupDocs OCR สำหรับสถานการณ์ extract tables scanned pdf

ข้อกำหนดเบื้องต้น

ก่อนที่เราจะเริ่ม, โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้:

  • Java 8+ ติดตั้งและกำหนดค่าใน IDE หรือเครื่องมือสร้างของคุณ.
  • Maven สำหรับการจัดการ dependencies.
  • เข้าถึงไลเซนส์ GroupDocs.Parser (ทดลองหรือเต็ม).

ไลบรารีและ dependencies ที่จำเป็น

คุณจะต้องมี:

  • ไลบรารี GroupDocs.Parser สำหรับ Java (เวอร์ชัน 25.5 หรือใหม่กว่า).
  • Maven ติดตั้งบนระบบของคุณสำหรับการจัดการ dependencies.

การตั้งค่าสภาพแวดล้อม

ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมการพัฒนาของคุณตั้งค่าไว้ด้วยเวอร์ชัน Java ที่เข้ากันได้ (Java 8 หรือสูงกว่า).

ความรู้เบื้องต้นที่จำเป็น

ความเข้าใจพื้นฐานของการเขียนโปรแกรม Java และความคุ้นเคยกับการจัดการไฟล์ใน Java จะเป็นประโยชน์.

การตั้งค่า GroupDocs.Parser สำหรับ Java

เพื่อเริ่มใช้ GroupDocs.Parser, ผสานเข้ากับโปรเจกต์ของคุณดังต่อไปนี้:

การตั้งค่า Maven
เพิ่มการกำหนดค่าต่อไปนี้ในไฟล์ pom.xml ของคุณเพื่อรวม GroupDocs.Parser เป็น dependency:

<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 สำหรับ Java จาก GroupDocs releases.

การรับไลเซนส์

เริ่มต้นด้วยการทดลองใช้งานฟรี, รับไลเซนส์ชั่วคราว, หรือซื้อไลเซนส์เต็ม. เยี่ยมชม GroupDocs licensing page สำหรับรายละเอียด.

การเริ่มต้นและตั้งค่าเบื้องต้น

เริ่มต้น GroupDocs.Parser ในแอปพลิเคชัน Java ของคุณดังนี้:

import com.groupdocs.parser.Parser;

public class DocumentParser {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        try (Parser parser = new Parser(filePath)) {
            // Ready to perform operations on the document
        } catch (Exception e) {
            System.err.println("Error creating Parser instance: " + e.getMessage());
        }
    }
}

คู่มือการใช้งาน

มาทำความเข้าใจแต่ละฟีเจอร์ที่คุณต้องเชี่ยวชาญ how to extract tables จาก PDF.

ฟีเจอร์ 1: การแยกเอกสารด้วย GroupDocs

ภาพรวม
เพื่อทำงานกับเอกสาร PDF, สร้างอินสแตนซ์ของคลาส Parser. สิ่งนี้ทำให้คุณสามารถทำหลายการดำเนินการบนเอกสารได้.

การสร้างอินสแตนซ์ Parser

import com.groupdocs.parser.Parser;

public class CreateParserInstance {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        try (Parser parser = new Parser(filePath)) {
            // Document is ready for operations
        } catch (Exception e) {
            System.err.println("Error creating Parser instance: " + e.getMessage());
        }
    }
}

ฟีเจอร์ 2: การตรวจสอบความสามารถในการสกัดตาราง

ภาพรวม
ก่อนทำการสกัดตาราง, ตรวจสอบว่า PDF รองรับการสกัดตารางหรือไม่.

การตรวจสอบการสนับสนุนตาราง

import com.groupdocs.parser.Parser;

public class CheckTableSupport {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        try (Parser parser = new Parser(filePath)) {
            boolean isTablesSupported = parser.getFeatures().isTables();
            
            if (!isTablesSupported) {
                System.out.println("Document doesn't support tables extraction.");
            }
        } catch (Exception e) {
            System.err.println("Error checking table extraction capability: " + e.getMessage());
        }
    }
}

ฟีเจอร์ 3: การกำหนดค่าเลย์เอาต์ของตาราง

ภาพรวม
การกำหนดค่าเลย์เอาต์ของตารางของคุณสามารถเพิ่มความแม่นยำในการสกัดข้อมูล.

การตั้งค่าเลย์เอาต์ของตาราง

import com.groupdocs.parser.templates.TemplateTableLayout;
import java.util.Arrays;

public class ConfigureTableLayout {
    public static void main(String[] args) {
        final double[] columnWidths = {50.0, 95.0, 275.0, 415.0, 485.0, 545.0};
        final double[] rowHeights = {325.0, 340.0, 365.0, 395.0};

        TemplateTableLayout layout = new TemplateTableLayout(
                Arrays.asList(columnWidths), 
                Arrays.asList(rowHeights));
    }
}

ฟีเจอร์ 4: การตั้งค่าตัวเลือกการสกัดตาราง

ภาพรวม
ตั้งค่าตัวเลือกสำหรับการสกัดตารางด้วยการกำหนดค่าที่เฉพาะเจาะจงเพื่อปรับปรุงความแม่นยำของการสกัด.

การกำหนดค่าตัวเลือกการสกัด

import com.groupdocs.parser.options.PageTableAreaOptions;
import com.groupdocs.parser.templates.TemplateTableLayout;

public class SetExtractionOptions {
    public static void main(String[] args) {
        TemplateTableLayout layout = new TemplateTableLayout(
                Arrays.asList(new Double[]{50.0, 95.0, 275.0, 415.0, 485.0, 545.0}), 
                Arrays.asList(new Double[]{325.0, 340.0, 365.0, 395.0}));

        PageTableAreaOptions options = new PageTableAreaOptions(layout);
    }
}

ฟีเจอร์ 5: การสกัดตารางจากเอกสาร

ภาพรวม
สกัดตารางโดยใช้ตัวเลือกที่กำหนดและประมวลผลตามที่ต้องการ.

กระบวนการสกัด

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.options.PageTableAreaOptions;
import com.groupdocs.parser.data.PageTableArea;

public class ExtractTables {
    public static void main(String[] args) {
        final String filePath = "YOUR_DOCUMENT_DIRECTORY/SampleInvoicePagesPdf.pdf";
        PageTableAreaOptions options = new PageTableAreaOptions(/* layout from previous feature */);

        try (Parser parser = new Parser(filePath)) {
            Iterable<PageTableArea> tables = parser.getTables(options);
            
            for (PageTableArea table : tables) {
                // Process each table as needed
            }
        } catch (Exception e) {
            System.err.println("Error extracting tables: " + e.getMessage());
        }
    }
}

ฟีเจอร์ 6: การวนลูปผ่านแถวและคอลัมน์ของตาราง

ภาพรวม
หลังจากสกัด, วนลูปผ่านแถวและคอลัมน์เพื่อเข้าถึงเซลล์แต่ละอัน.

วนลูปและเข้าถึงเซลล์

import com.groupdocs.parser.data.PageTableArea;
import com.groupdocs.parser.data.PageTableAreaCell;

public class IterateTables {
    public static void main(String[] args) {
        PageTableArea table = /* reference to a specific PageTableArea object */;

        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) {
                    // Process the cell text as needed
                }
            }
        }
    }
}

ปัญหาที่พบบ่อยและวิธีแก้

ปัญหาสาเหตุเคล็ดลับ
ไม่พบตารางPDF เป็นแบบสแกน (ภาพ)ทำ OCR ก่อนหรือใช้ GroupDocs OCR ก่อนทำการแยก.
การจัดแนวคอลัมน์ไม่ถูกต้องพิกัดเลย์เอาต์ไม่ตรงปรับค่า TemplateTableLayout ให้ตรงกับกริดที่มองเห็น.
การใช้หน่วยความจำพุ่งสูงใน PDF ขนาดใหญ่Parser โหลดเอกสารทั้งหมดเข้าสู่หน่วยความจำประมวลผลหน้าเป็นชุดและปิด Parser หลังจากแต่ละชุด.

คำถามที่พบบ่อย

1. ฉันสามารถสกัดตารางจาก PDF ที่สแกนหรือเฉพาะ PDF ดิจิทัลเท่านั้น?

คำตอบ: GroupDocs.Parser ทำงานหลักกับ PDF ดิจิทัลที่สามารถเลือกข้อความได้และมีข้อความฝังอยู่. สำหรับ PDF ที่สแกน, คุณต้องรวม OCR (Optical Character Recognition) เข้ามา. GroupDocs มีโมดูล OCR แยกต่างหาก, หรือคุณสามารถใช้เครื่องมือ OCR อื่นเพื่อแปลงภาพเป็นข้อความก่อนการสกัดตาราง.

2. ฉันจะจัดการกับตารางที่มีเลย์เอาต์ซับซ้อนหรือเซลล์ที่รวมกันได้อย่างไร?

คำตอบ: สำหรับเลย์เอาต์ที่ซับซ้อน, คุณสามารถปรับแต่ง TemplateTableLayout ด้วยพิกัดคอลัมน์และแถวที่เฉพาะเจาะจง, หรือปรับพารามิเตอร์การจดจำเพื่อเพิ่มความแม่นยำ. การจัดการเซลล์ที่รวมกันอาจต้องวิเคราะห์การขยายของเซลล์และทำตรรกะหลังการประมวลผลเพื่อแปลความหมายของพื้นที่ที่รวมกัน.

3. GroupDocs.Parser เหมาะกับเอกสารขนาดใหญ่หรือการประมวลผลแบบแบตช์หรือไม่?

คำตอบ: ใช่, GroupDocs.Parser ถูกปรับให้เหมาะกับการประมวลผลแบบแบตช์และสามารถจัดการเอกสารขนาดใหญ่ได้อย่างมีประสิทธิภาพ. การจัดการทรัพยากรอย่างเหมาะสมและการแบ่งงานประมวลผลเป็นชิ้นส่วนสามารถเพิ่มประสิทธิภาพได้อีก.

4. ฉันสามารถส่งออกข้อมูลตารางที่สกัดเป็นรูปแบบเช่น CSV หรือ Excel ได้หรือไม่?

คำตอบ: แม้ว่า GroupDocs.Parser จะเน้นการสกัดข้อมูล, มันจะให้ข้อมูลดิบ (แถวและเซลล์). คุณสามารถส่งออกข้อมูลนี้ได้ง่ายโดยใช้ไลบรารี Java เช่น Apache POI (สำหรับ Excel) หรือ OpenCSV (สำหรับไฟล์ CSV). นี่คือกรณีการใช้ export pdf tables csv.

5. มีการสนับสนุนการสกัดตารางจากหลายหน้าไหม?

คำตอบ: ใช่, เมื่อคุณใช้ parser.getTables() พร้อมตัวเลือกหน้า, มันสามารถสกัดตารางจากหลายหน้าได้. คุณสามารถระบุช่วงหน้า หรือประมวลผลทุกหน้าแบบวนลูปเพื่อรวบรวมข้อมูลตารางทั้งหมด.

สรุป

การสกัดตารางจาก PDF เป็นขั้นตอนสำคัญในการทำให้กระบวนการประมวลผลข้อมูลเอกสารเป็นอัตโนมัติ, และ GroupDocs.Parser สำหรับ Java ทำให้ภารกิจนี้ง่ายขึ้นกว่าที่เคย. ด้วยการสร้างอินสแตนซ์ parser, ตรวจสอบการสนับสนุนตาราง, กำหนดค่าเลย์เอาต์, และวนลูปผ่านข้อมูลที่สกัด, นักพัฒนาสามารถดึงข้อมูลที่มีโครงสร้างจากเอกสาร PDF ที่ซับซ้อนได้อย่างมีประสิทธิภาพ. ชุดเครื่องมือนี้ยืดหยุ่นพอที่จะรองรับสถานการณ์หลากหลาย—from invoice automation to large‑scale data analyses—and integrates seamlessly within Java applications. With a bit of setup and customization, you’ll turn static PDFs into actionable data with precision and ease.


อัปเดตล่าสุด: 2026-02-09
ทดสอบด้วย: GroupDocs.Parser 25.5 (Java)
ผู้เขียน: GroupDocs