Cách thực hiện trích xuất bảng PDF java với GroupDocs.Parser
Việc trích xuất bảng từ các tệp PDF là một yêu cầu thường gặp khi bạn cần chuyển đổi tài liệu tĩnh thành dữ liệu có cấu trúc. Trong hướng dẫn này, bạn sẽ học cách trích xuất bảng từ PDF bằng thư viện GroupDocs.Parser cho Java. Chúng tôi sẽ đề cập đến việc thiết lập môi trường, cấu hình bố cục bảng, và cách xuất bảng PDF sang CSV cho quá trình xử lý tiếp theo. Khi hoàn thành, bạn sẽ có thể tích hợp việc trích xuất bảng mạnh mẽ vào bất kỳ pipeline dữ liệu nào dựa trên Java.
Câu trả lời nhanh
- Thư viện chính là gì? GroupDocs.Parser for Java
- Tôi có thể trích xuất bảng từ PDF đã quét không? Chỉ sau khi OCR; xem ghi chú “extract tables scanned pdf” bên dưới
- Tôi có cần giấy phép không? Giấy phép dùng thử hoạt động cho phát triển; giấy phép đầy đủ cần thiết cho môi trường sản xuất
- Phiên bản Java nào được yêu cầu? Java 8 hoặc cao hơn
- Xử lý hàng loạt có được hỗ trợ không? Có – API được tối ưu cho việc trích xuất quy mô lớn
Trích xuất bảng PDF java là gì?
Trích xuất bảng PDF java là quá trình xác định các cấu trúc bảng bên trong PDF một cách lập trình, diễn giải ranh giới ô, và lấy văn bản dưới dạng có thể đọc được bởi máy như CSV hoặc Excel. Điều này cho phép các phân tích, báo cáo hoặc nhiệm vụ di chuyển dữ liệu tiếp theo mà không cần sao chép‑dán thủ công.
Tại sao nên sử dụng GroupDocs.Parser cho trích xuất bảng PDF java?
GroupDocs.Parser cung cấp phát hiện bố cục chính xác cho hơn 50 + định dạng đầu vào và đầu ra và có thể xử lý các PDF hàng trăm trang trong khi giữ mức sử dụng bộ nhớ dưới 200 MB. Nó hỗ trợ công việc hàng loạt, cung cấp một phụ thuộc Maven đơn giản, và tích hợp liền mạch với GroupDocs OCR cho các trường hợp tài liệu đã quét.
Yêu cầu trước
Trước khi bắt đầu, hãy đảm bảo bạn có những thứ sau:
- Java 8+ đã được cài đặt và cấu hình trong IDE hoặc công cụ xây dựng của bạn.
- Maven để quản lý phụ thuộc.
- Truy cập vào giấy phép GroupDocs.Parser (dùng thử hoặc đầy đủ).
Thư viện và phụ thuộc cần thiết
Bạn sẽ cần:
- Thư viện GroupDocs.Parser cho Java (phiên bản 25.5 hoặc mới hơn).
- Maven đã được cài đặt trên hệ thống của bạn để quản lý phụ thuộc.
Thiết lập môi trường
Đảm bảo môi trường phát triển của bạn được thiết lập với phiên bản Java tương thích (Java 8 hoặc cao hơn).
Kiến thức yêu cầu
Hiểu biết cơ bản về lập trình Java và quen thuộc với việc xử lý tệp trong Java sẽ có lợi.
Thiết lập GroupDocs.Parser cho Java
Để bắt đầu sử dụng GroupDocs.Parser, tích hợp nó vào dự án của bạn như sau:
Cấu hình Maven
Thêm cấu hình sau vào tệp pom.xml của bạn để bao gồm GroupDocs.Parser như một phụ thuộc:
<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>
Tải xuống trực tiếp
Hoặc, tải phiên bản mới nhất của GroupDocs.Parser cho Java từ GroupDocs releases.
Nhận giấy phép
Bắt đầu với bản dùng thử miễn phí, nhận giấy phép tạm thời, hoặc mua giấy phép đầy đủ. Truy cập trang cấp phép GroupDocs để biết chi tiết.
Khởi tạo và thiết lập cơ bản
Khởi tạo GroupDocs.Parser trong ứng dụng Java của bạn như sau:
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());
}
}
}
Hướng dẫn triển khai
Hãy đi qua từng tính năng bạn cần nắm vững cách trích xuất bảng từ một PDF.
Tính năng 1: phân tích tài liệu với GroupDocs
Tổng quan
Để tương tác với tài liệu PDF, tạo một thể hiện của lớp Parser.Parser là lớp điểm vào để đọc nội dung PDF trong GroupDocs.Parser. Điều này cho phép thực hiện nhiều thao tác trên tài liệu.
Tạo một thể hiện parser
Lớp Parser là điểm vào để đọc nội dung PDF trong GroupDocs.Parser. Nó tải tài liệu vào bộ nhớ và cung cấp các phương thức để trích xuất văn bản, bảng và các cấu trúc khác.
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());
}
}
}
Tính năng 2: kiểm tra khả năng trích xuất bảng
Tổng quan
Trước khi trích xuất bảng, hãy xác minh rằng PDF hỗ trợ trích xuất bảng.
Kiểm tra hỗ trợ bảng
Phương thức hasTables() trả về một giá trị boolean cho biết liệu PDF đã tải có chứa dữ liệu bảng có thể phát hiện được hay không.hasTables() kiểm tra xem tài liệu có bất kỳ bảng nào không.
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());
}
}
}
Tính năng 3: cấu hình bố cục bảng
Tổng quan
Cấu hình bố cục của các bảng có thể nâng cao độ chính xác trong việc trích xuất dữ liệu.
Thiết lập bố cục bảngTemplateTableLayout định nghĩa độ rộng cột và chiều cao hàng mong muốn.TemplateTableLayout chỉ định độ rộng cột và chiều cao hàng tùy chỉnh để phát hiện bảng. Điều chỉnh các giá trị này giúp engine căn chỉnh ranh giới ô với lưới hiển thị.
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));
}
}
Tính năng 4: thiết lập tùy chọn trích xuất bảng
Tổng quan
Thiết lập các tùy chọn để trích xuất bảng với cấu hình cụ thể nhằm cải thiện độ chính xác.
Cấu hình các tùy chọn trích xuấtTableExtractionOptions cho phép bạn chỉ định có bao gồm các hàng tiêu đề, hợp nhất ô, hoặc bỏ qua các hàng trống hay không.TableExtractionOptions cấu hình hành vi trích xuất như bao gồm tiêu đề hoặc hợp nhất ô.
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);
}
}
Tính năng 5: trích xuất bảng từ tài liệu
Tổng quan
Trích xuất bảng bằng cách sử dụng các tùy chọn đã cấu hình và xử lý chúng theo nhu cầu.
Quá trình trích xuất
Phương thức getTables() trả về một tập hợp các đối tượng Table, mỗi đối tượng đại diện cho một bảng được phát hiện trên các trang yêu cầu.getTables() lấy tất cả các bảng được phát hiện từ tài liệu.Table đại diện cho một bảng đã trích xuất duy nhất với các hàng và ô.
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());
}
}
}
Tính năng 6: lặp qua các hàng và cột của bảng
Tổng quan
Sau khi trích xuất, lặp qua các hàng và cột để truy cập các ô riêng lẻ.
Lặp và truy cập ô
Mỗi Table cung cấp getRows() và mỗi Row cung cấp getCells(). Bạn có thể đọc văn bản của ô qua getText() và ghi nó vào CSV hoặc bất kỳ định dạng nào khác.Row đại diện cho một hàng duy nhất trong một Table.getRows() trả về danh sách các hàng trong một bảng.getCells() trả về các ô của một hàng.getText() lấy nội dung văn bản của một ô.
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
}
}
}
}
}
Các vấn đề thường gặp và giải pháp
| Issue | Why it happens | Pro tip |
|---|---|---|
| Không có bảng nào được trả về | PDF được quét (dựa trên hình ảnh) | Chạy OCR trước hoặc sử dụng GroupDocs OCR trước khi phân tích. |
| Căn chỉnh cột không chính xác | Tọa độ bố cục sai | Tinh chỉnh giá trị TemplateTableLayout để khớp với lưới hiển thị. |
| Tăng đột biến bộ nhớ trên PDF lớn | Parser tải toàn bộ tài liệu vào bộ nhớ | Xử lý các trang theo lô và đóng Parser sau mỗi lô. |
Câu hỏi thường gặp
1. Tôi có thể trích xuất bảng từ PDF đã quét hay chỉ từ PDF kỹ thuật số?
Trả lời: GroupDocs.Parser chủ yếu hoạt động với PDF kỹ thuật số, có thể chọn được và chứa văn bản nhúng. Đối với PDF đã quét, bạn cần chạy OCR trước—bằng GroupDocs OCR hoặc một công cụ OCR khác—để văn bản có thể tìm kiếm được trước khi trích xuất bảng.
2. Làm thế nào để xử lý các bảng có bố cục phức tạp hoặc ô đã hợp nhất?
Trả lời: Tùy chỉnh TemplateTableLayout với tọa độ cột và hàng chính xác, hoặc bật cờ mergeCells trong TableExtractionOptions. Có thể cần xử lý hậu kỳ để diễn giải đúng các vùng hợp nhất.
3. GroupDocs.Parser có phù hợp cho tài liệu lớn hoặc xử lý hàng loạt không?
Trả lời: Có. Thư viện được xây dựng cho các kịch bản thông lượng cao và có thể xử lý PDF hàng trăm trang trong khi giữ mức tiêu thụ bộ nhớ thấp. Sử dụng tùy chọn phạm vi trang và giải phóng thể hiện Parser sau mỗi lô để tối đa hoá hiệu suất.
4. Tôi có thể xuất dữ liệu bảng đã trích xuất sang các định dạng như CSV hoặc Excel không?
Trả lời: GroupDocs.Parser trả về dữ liệu bảng thô (các hàng và ô). Bạn có thể dễ dàng ghi dữ liệu này vào CSV bằng OpenCSV hoặc vào Excel bằng Apache POI. Điều này đáp ứng nhu cầu export pdf tables csv mà không cần giấy phép bổ sung.
5. Có hỗ trợ trích xuất bảng từ nhiều trang cùng một lúc không?
Trả lời: Hoàn toàn có. Gọi parser.getTables(pageOptions) với phạm vi trang hoặc lặp qua tất cả các trang. API tổng hợp các bảng trên các trang, cho phép bạn xây dựng một bộ dữ liệu hợp nhất duy nhất.
Kết luận
Việc trích xuất bảng PDF java trở nên đơn giản với GroupDocs.Parser. Bằng cách khởi tạo một Parser, xác nhận hỗ trợ bảng, cấu hình bố cục và các tùy chọn trích xuất, và lặp qua các đối tượng Table thu được, bạn có thể chuyển đổi PDF tĩnh thành các tệp CSV hoặc Excel có cấu trúc. Thiết kế tập trung vào hiệu năng của thư viện, hỗ trợ hơn 50 định dạng, và tích hợp OCR liền mạch khiến nó trở thành lựa chọn lý tưởng cho tự động hóa hoá đơn, di chuyển dữ liệu, và các pipeline phân tích quy mô lớn. Với các bước đã nêu ở trên, bạn đã sẵn sàng nhúng việc trích xuất bảng đáng tin cậy vào bất kỳ ứng dụng Java nào.
Cập nhật lần cuối: 2026-09-17
Kiểm tra với: GroupDocs.Parser 25.5 (Java)
Tác giả: GroupDocs