Apache PDFBox: Bộ công cụ PDF hoàn chỉnh cho Java
Trích xuất văn bản, thao tác tài liệu, điền biểu mẫu và hơn nữa - tất cả bằng Java thuần túy
Apache PDFBox là gì?
Apache PDFBox là một thư viện Java mã nguồn mở mạnh mẽ được thiết kế để xử lý PDF liền mạch trong Java, cho phép nhà phát triển tạo, chỉnh sửa và trích xuất nội dung từ tài liệu PDF một cách lập trình. Là một trong những thư viện PDF Java phổ biến nhất, PDFBox xuất sắc trong các tác vụ như trích xuất văn bản từ PDF, hợp nhất nhiều file PDF và thêm chữ ký số, tất cả với API nhẹ và không tốn chi phí cấp phép. Cho dù bạn cần phân tích cú pháp PDF trong Java, tạo PDF hay tuân thủ PDF/A, thư viện này hỗ trợ các tính năng nâng cao như tích hợp OCR, điền biểu mẫu và chuyển đổi HTML sang PDF. Với các phụ thuộc sẵn sàng cho Maven (ví dụ: pdfbox-maven) và tài liệu mở rộng, PDFBox đơn giản hóa các quy trình phức tạp - làm cho nó lý tưởng cho các ứng dụng doanh nghiệp, tự động hóa tài liệu và trích xuất dữ liệu. So với các giải pháp thay thế như iText, Apache PDFBox nổi bật nhờ tính linh hoạt mã nguồn mở, cộng đồng tích cực và khả năng tương thích đa nền tảng. Hãy xem hướng dẫn PDFBox của chúng tôi để khám phá các ví dụ mã Java và mở khóa toàn bộ tiềm năng của thao tác PDF trong Java.
Ưu điểm chính của PDFBox bao gồm:
- Giải pháp hoàn chỉnh: Cả khả năng trích xuất và tạo
- Java thuần túy: Không có phụ thuộc gốc
- Phát triển tích cực: Được hỗ trợ bởi Apache Software Foundation
- Tính năng toàn diện: Trích xuất văn bản, tách, hợp nhất, ký
- Hỗ trợ biểu mẫu: Đọc và điền biểu mẫu PDF
Lý tưởng cho hệ thống quản lý tài liệu, trích xuất nội dung và tự động hóa PDF.
Tại sao chọn PDFBox?
- Độ chín muồi: Ổn định từ năm 2002 với các bản cập nhật thường xuyên
- Tính linh hoạt: Cả khả năng đọc và ghi
- Hỗ trợ tiêu chuẩn: Xử lý tài liệu PDF 1.7 và PDF/A
- Cộng đồng: Cơ sở người dùng lớn và tài liệu mở rộng
- Tích hợp: Hoạt động với tất cả các framework dựa trên Java
Cài đặt
PDFBox có sẵn qua Maven Central để tích hợp dễ dàng:
Maven
org.apache.pdfbox
pdfbox
3.0.0
Gradle
implementation 'org.apache.pdfbox:pdfbox:3.0.0'
Yêu cầu hệ thống: Java 8 trở lên
Ví dụ mã
Các ví dụ thực tế về khả năng của PDFBox:
Ví dụ 1: Trích xuất Văn bản Cơ bản từ Tài liệu PDF trong Java
Ví dụ này cho thấy cách trích xuất văn bản từ tài liệu PDF trong khi vẫn giữ nguyên định dạng và cấu trúc. PDFBox cung cấp khả năng tách văn bản nâng cao duy trì thứ tự đọc và xử lý bố cục phức tạp.
Đầu ra bao gồm:
- Nội dung văn bản có cấu trúc
- Trích xuất theo từng trang
- Bảo toàn định dạng cơ bản
Ví dụ 2: Tạo Tài liệu PDF từ Đầu trong Java
PDFBox xuất sắc trong cả việc đọc và tạo PDF. Ví dụ này minh họa việc tạo một tài liệu PDF mới với văn bản và định dạng cơ bản.
Ví dụ 3: Thêm Đầu trang và Chân trang vào Trang PDF trong Java
PDFBox cung cấp hỗ trợ toàn diện để thêm đầu trang và chân trang vào các trang PDF từ trong ứng dụng Java của bạn. Mẫu mã sau đây cho thấy cách thực hiện điều này bằng cách sử dụng PDFBox API cho Java.
Tính năng Nâng cao
PDFBox hỗ trợ xử lý PDF chuyên nghiệp:
- Trích xuất hình ảnh: Truy cập hình ảnh nhúng:
Trích xuất Hình ảnh
PDDocument document = PDDocument.load(new File("document.pdf")); for (PDPage page : document.getPages()) { PDResources resources = page.getResources(); for (COSName name : resources.getXObjectNames()) { PDXObject xobject = resources.getXObject(name); if (xobject instanceof PDImageXObject) { BufferedImage image = ((PDImageXObject) xobject).getImage(); // Xử lý hình ảnh } } }
- Tách tài liệu: Chia PDF thành nhiều file:
Tách PDF
Splitter splitter = new Splitter(); List
pages = splitter.split(document); for (int i = 0; i < pages.size(); i++) { pages.get(i).save("trang-" + (i+1) + ".pdf"); } - PDF mã hóa: Xử lý file được bảo vệ bằng mật khẩu:
PDF Mã hóa
String password = "secure123"; FileInputStream fis = new FileInputStream("encrypted.pdf"); PDDocument doc = PDDocument.load(fis, password);
PDFBox vs iText
Dưới đây là 5 điểm khác biệt chính giữa PDFBox và iText:
- Giấy phép: PDFBox có giấy phép Apache (mã nguồn mở), trong khi iText có giấy phép thương mại cho hầu hết các trường hợp sử dụng
- Tập trung Tính năng: PDFBox cung cấp khả năng đọc/ghi cân bằng, trong khi iText chuyên về tạo PDF
- Hiệu suất: iText thường nhanh hơn để tạo tài liệu, trong khi PDFBox xuất sắc trong trích xuất văn bản
- Cộng đồng: PDFBox có mức độ áp dụng mã nguồn mở rộng hơn, trong khi iText cung cấp hỗ trợ chuyên nghiệp
- Trường hợp Sử dụng: PDFBox lý tưởng để phân tích và thao tác cơ bản, trong khi iText tốt hơn để tạo PDF khối lượng lớn
Kết luận
Apache PDFBox cung cấp xử lý PDF toàn diện cho các nhà phát triển Java. Lý tưởng cho:
- Trích xuất nội dung: Khai thác văn bản và dữ liệu từ PDF
- Tự động hóa tài liệu: Tạo báo cáo và biểu mẫu
- Quản lý tài liệu: Tách, hợp nhất và chuyển đổi PDF
- Xử lý biểu mẫu: Đọc và điền biểu mẫu tương tác
Với giấy phép mã nguồn mở và bộ tính năng toàn diện, PDFBox là lựa chọn hàng đầu để xử lý PDF dựa trên Java.
Sản Phẩm Tương Tự
- Apache POI XWPF | API Java nguồn mở để tạo và sửa đổi các tệp DOCX
- DocX | API .NET nguồn mở để tạo và sửa đổi các tệp DOCX
- Docx4J | API Java nguồn mở để tạo và sửa đổi các tệp DOC và DOCX
- ExcelDataReader | API .NET nguồn mở để đọc các tài liệu XLS, XLSX, CSV và Bảng tính
- FileFormat.Cells | Tạo và cập nhật các tệp Excel bằng C# .NET