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.

GitHub

Thống kê GitHub

Tên:
Ngôn ngữ:
Ngôi sao:
Nĩa:
Giấy phép:
Kho lưu trữ được cập nhật lần cuối lúc

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:

Apache 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ự

 Vietnamese