Cách phân tích PDF trong Java bằng mẫu GroupDocs.Parser
Câu trả lời nhanh
- Thư viện Java tốt nhất để phân tích PDF là gì? GroupDocs.Parser là một thư viện phân tích PDF mạnh mẽ, dựa trên mẫu cho Java.
- Tôi có thể trích xuất bảng từ PDF không? Có — bằng cách định nghĩa một bảng mẫu, bạn có thể lấy trực tiếp các hàng và cột có cấu trúc.
- Có cần giấy phép để thử không? Bản dùng thử miễn phí và giấy phép tạm thời có sẵn; giấy phép đầy đủ cần thiết cho môi trường sản xuất.
- Nó có hoạt động với các lô lớn không? Chắc chắn — xử lý batch và các thiết lập tiết kiệm bộ nhớ được hỗ trợ.
- Có hỗ trợ phân tích PDF có mật khẩu không? Có, miễn là bạn cung cấp đúng mật khẩu.
GroupDocs.Parser là gì?
GroupDocs.Parser cho phép bạn mô tả vùng chính xác của PDF nơi dữ liệu nằm (sử dụng hình chữ nhật, điểm và kích thước). Trình phân tích sau đó chỉ đọc những vùng này, biến các trang PDF không có cấu trúc thành các đối tượng lập trình sạch sẽ mà bạn có thể lặp lại.
Tại sao nên dùng GroupDocs.Parser cho việc phân tích PDF bằng Java?
- Độ chính xác dựa trên mẫu: Không còn các biểu thức chính quy dễ gãy; bạn định nghĩa bảng một lần và tái sử dụng.
- Tập trung vào hiệu năng: Tối ưu cho các luồng tài liệu quy mô lớn và công việc batch.
- Hỗ trợ đa định dạng: Xử lý PDF, DOCX, XLSX và nhiều hơn nữa, tất cả qua một API duy nhất.
Yêu cầu trước
Trước khi bắt đầu viết code, hãy chắc chắn bạn đã có:
- GroupDocs.Parser cho Java (phiên bản 25.5 trở lên)
- JDK 8+ đã được cài đặt
- Một IDE như IntelliJ IDEA hoặc Eclipse
- Maven (tùy chọn, nhưng khuyến nghị để quản lý phụ thuộc)
Cài đặt GroupDocs.Parser cho Java
Việc đưa GroupDocs.Parser vào dự án của bạn rất đơn giản. Sử dụng Maven hoặc tải thư viện trực tiếp từ trang chính thức.
Cài đặt Maven:
Thêm đoạn sau vào file pom.xml của bạn:
<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 trực tiếp:
Nếu bạn không muốn dùng Maven, tải phiên bản mới nhất của GroupDocs.Parser từ bản phát hành GroupDocs.
Nhận giấy phép
- Bản dùng thử: Bắt đầu với bản dùng thử miễn phí để đánh giá các tính năng.
- Giấy phép tạm thời: Nhận giấy phép tạm thời để thử nghiệm kéo dài hơn.
- Mua bản đầy đủ: Đối với việc sử dụng toàn diện, mua giấy phép từ trang web GroupDocs.
Khi môi trường đã sẵn sàng, khởi tạo parser:
import com.groupdocs.parser.Parser;
public class PdfParserSetup {
public static void main(String[] args) {
// Initialize Parser object with a sample PDF path
try (Parser parser = new Parser("path/to/your/sample.pdf")) {
System.out.println("Parser initialized successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Hướng dẫn triển khai
Chúng ta sẽ chia quá trình triển khai thành các phần logic, mỗi phần tập trung vào một tính năng cụ thể của GroupDocs.Parser.
Tạo bảng mẫu
Bảng mẫu cho phép bạn tạo mẫu PDF định nghĩa vị trí chính xác của một bảng trong PDF.
Định nghĩa tham số bảng
Bắt đầu bằng cách chỉ định vị trí và kích thước của bảng bằng các lớp Rectangle, Point và Size:
import com.groupdocs.parser.templates.TemplateTable;
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Point;
import com.groupdocs.parser.templates.Size;
// Create a template table with specific parameters
TemplateTable table = new TemplateTable(
new TemplateTableParameters(new Rectangle(new Point(35, 320), new Size(530, 55)), null),
"Details",
null);
Thêm bảng vào mẫu
Sau khi đã định nghĩa, thêm bảng vào đối tượng mẫu:
import com.groupdocs.parser.templates.Template;
import java.util.Arrays;
// Create a template containing this table
Template template = new Template(Arrays.asList(new TemplateItem[]{table}));
Phân tích tài liệu bằng mẫu
Với mẫu thư viện phân tích PDF java đã sẵn sàng, bạn có thể bắt đầu phân tích tài liệu.
Khởi tạo Parser với đường dẫn tài liệu
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentData;
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleInvoicePdf")) {
// Parse the document by the previously defined template
DocumentData data = parser.parseByTemplate(template);
Trích xuất và in dữ liệu
Lặp qua các trường đã trích xuất để lấy văn bản của từng ô. Đây là nơi bạn thực sự trích xuất bảng PDF:
import com.groupdocs.parser.data.PageTableArea;
import com.groupdocs.parser.data.PageTextArea;
// Iterate over all extracted fields in the document
for (int i = 0; i < data.getCount(); i++) {
PageTableArea area = data.get(i).getPageArea() instanceof PageTableArea
? (PageTableArea) data.get(i).getPageArea()
: null;
if (area == null) continue;
for (int row = 0; row < area.getRowCount(); row++) {
for (int column = 0; column < area.getColumnCount(); column++) {
PageTextArea cellValue = area.getCell(row, column).getPageArea() instanceof PageTextArea
? (PageTextArea) area.getCell(row, column).getPageArea()
: null;
if (column > 0) System.out.print("\t");
System.out.print(cellValue == null ? "" : cellValue.getText());
}
System.out.println();
}
}
Các vấn đề thường gặp và giải pháp
- Đường dẫn tệp không đúng: Kiểm tra lại rằng đường dẫn PDF bạn truyền vào
Parserlà tuyệt đối hoặc tương đối đúng với dự án. - Phiên bản không khớp: Đảm bảo phiên bản phụ thuộc Maven trùng khớp với JAR bạn tải nếu bạn kết hợp cả hai cách.
- Vùng mẫu bị thiếu: Nếu các hàng/cột rỗng, kiểm tra lại tọa độ hình chữ nhật; việc hiển thị PDF có thể khác nhau giữa các phiên bản.
Ứng dụng thực tiễn
Hiểu cách phân tích PDF bằng mẫu mở ra nhiều kịch bản thực tế:
- Xử lý hoá đơn: Tự động lấy số hoá đơn, ngày tháng và tổng tiền vào hệ thống kế toán.
- Lưu trữ tài liệu: Chuyển dữ liệu biểu mẫu có cấu trúc thành bản ghi cơ sở dữ liệu để lưu trữ có thể tìm kiếm.
- Di chuyển dữ liệu: Trích xuất dữ liệu PDF cũ khi chuyển sang ERP hoặc CRM mới.
Lưu ý về hiệu năng
Khi xử lý hàng ngàn PDF, hãy ghi nhớ các mẹo sau:
- Quản lý bộ nhớ hiệu quả: Sử dụng try‑with‑resources (như trong ví dụ) để đóng parser kịp thời.
- Xử lý batch: Xử lý tài liệu theo nhóm (ví dụ 50‑100 tệp mỗi batch) để giảm áp lực GC.
- Thực thi song song: Tận dụng
ExecutorServicecủa Java để phân tích nhiều tệp đồng thời, nhưng luôn giám sát việc sử dụng CPU và bộ nhớ.
Kết luận
Chúng tôi đã trình bày mọi thứ bạn cần biết để cách phân tích PDF bằng GroupDocs.Parser cho Java — từ cài đặt thư viện và tạo mẫu PDF, đến việc trích xuất các hàng từ bảng PDF và tối ưu hiệu năng ở quy mô lớn. Thực hiện các bước này, bạn có thể biến các PDF lộn xộn thành dữ liệu sạch, sẵn sàng cho bất kỳ hệ thống downstream nào.
Bước tiếp theo:
- Thử nghiệm với tài liệu đa trang bằng cách mở rộng tọa độ hình chữ nhật.
- Khám phá các mục mẫu bổ sung như
TemplateTextcho các trường tự do. - Tích hợp parser vào microservice Spring Boot để thu thập tài liệu thời gian thực.
Cập nhật lần cuối: 2026-02-14
Kiểm tra với: GroupDocs.Parser 25.5 cho Java
Tác giả: GroupDocs
Câu hỏi thường gặp
Q: Tôi có thể xử lý các PDF có bố cục khác nhau không?
A: Có. Tạo nhiều đối tượng TemplateTable với các tọa độ Rectangle khác nhau và kết hợp chúng trong một Template duy nhất.
Q: Có thể phân tích PDF có mật khẩu không?
A: Chắc chắn. Truyền mật khẩu vào overload của constructor Parser chấp nhận giấy phép và mật khẩu.
Q: Nếu dữ liệu tôi trích xuất thiếu các hàng thì sao?
A: Kiểm tra lại rằng hình chữ nhật bao phủ toàn bộ vùng bảng và PDF không sử dụng phông chữ không chuẩn mà parser không đọc được.
Q: GroupDocs.Parser có hỗ trợ các loại tài liệu khác không?
A: Có, cùng một cách tiếp cận mẫu cũng áp dụng cho DOCX, XLSX, PPTX và nhiều định dạng khác.
Q: Làm sao cải thiện tốc độ cho các batch lớn?
A: Sử dụng xử lý batch, tinh chỉnh heap JVM và cân nhắc chạy parser trên máy có ổ SSD để tăng tốc I/O.