×

Cách cài đặt Apache PDFBox để tạo và chỉnh sửa file PDF trong Java

Apache PDFBox là một thư viện mã nguồn mở được phát triển bởi Apache Software Foundation, cho phép lập trình viên làm việc với tệp PDF một cách dễ dàng trong các ứng dụng Java. PDFBox cung cấp nhiều tính năng như tạo, chỉnh sửa, trích xuất nội dung và nhiều hơn nữa. Bài viết này sẽ hướng dẫn bạn cách cài đặt Apache PDFBox để sử dụng trong dự án Java của mình, tạo và chỉnh sửa tài liệu PDF một cách hiệu quả.

Cài đặt Maven và tạo dự án Java

Trước khi bắt đầu cài đặt Apache PDFBox, chúng ta cần đảm bảo rằng bạn đã cài đặt Maven và tạo một dự án Java cơ bản. Maven là một công cụ quản lý dự án và xây dựng, rất hữu ích cho việc quản lý các thư viện bên ngoài như PDFBox.

Bước 1: Cài đặt Maven

Để cài đặt Maven, bạn có thể làm theo các bước sau:

  1. Download Maven từ trang chính thức: Apache Maven Website.
  2. Giải nén file tải về vào một thư mục mà bạn muốn (ví dụ: C:\apache-maven).
  3. Thêm các biến môi trường sau vào hệ thống:
    • MAVEN_HOME trỏ đến thư mục cài đặt Maven.
    • Cập nhật biến PATH để bao gồm ${MAVEN_HOME}/bin.

Bước 2: Tạo một dự án Java mới

Bạn có thể tạo một dự án Maven mới bằng lệnh sau:

mvn archetype:generate -DgroupId=com.example -DartifactId=pdfbox-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Sau khi chạy lệnh này, một thư mục mới có tên pdfbox-example sẽ được tạo. Bạn có thể vào thư mục này để xem cấu trúc dự án.

Cách thêm PDFBox vào dự án

Để sử dụng PDFBox trong dự án của bạn, bạn cần thêm nó vào tệp pom.xml của dự án Maven.

Bước 3: Thêm dependency PDFBox

Mở tệp pom.xml trong thư mục dự án của bạn và thêm đoạn mã sau vào phần <dependencies>:

<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.24</version> <!-- Kiểm tra phiên bản mới nhất trên Maven Central -->
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox-tools</artifactId>
        <version>2.0.24</version>
    </dependency>
</dependencies>

Sau đó, lưu tệp pom.xml. Maven sẽ tự động tải xuống các thư viện cần thiết khi bạn xây dựng dự án.

Tạo tệp PDF mới với Apache PDFBox

Sau khi cài đặt PDFBox, bạn có thể dễ dàng tạo một tệp PDF mới. Dưới đây là một ví dụ đơn giản về cách tạo một tệp PDF với nội dung văn bản.

Bước 4: Tạo tệp PDF

Tạo lớp Java mới, ví dụ CreatePDF.java, và thêm mã sau vào lớp này:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.IOException;

public class CreatePDF {
    public static void main(String[] args) {
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
            contentStream.beginText();
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            contentStream.newLineAtOffset(25, 700);
            contentStream.showText("Hello, World! This is my first PDF document created with PDFBox.");
            contentStream.endText();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            document.save("HelloWorld.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                document.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        System.out.println("PDF created successfully!");
    }
}

Bước 5: Biên dịch và chạy ứng dụng

Biên dịch và chạy ứng dụng của bạn bằng lệnh:

mvn clean package

Sau khi biên dịch thành công, bạn có thể chạy tệp JAR đã tạo trong thư mục target:

java -cp target/pdfbox-example-1.0-SNAPSHOT.jar com.example.CreatePDF

Khi chạy ứng dụng, bạn sẽ thấy một tệp PDF có tên HelloWorld.pdf xuất hiện trong thư mục gốc của dự án với nội dung văn bản bạn đã chỉ định.

Chỉnh sửa tệp PDF bằng Apache PDFBox

Ngoài việc tạo tệp PDF, bạn cũng có thể chỉnh sửa các tệp PDF đã có. Đoạn mã dưới đây sẽ hướng dẫn bạn cách thêm một đoạn văn bản vào một tệp PDF hiện có.

Bước 6: Chỉnh sửa tệp PDF

Tạo lớp Java mới, ví dụ EditPDF.java, và thêm mã sau vào lớp này:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.File;
import java.io.IOException;

public class EditPDF {
    public static void main(String[] args) {
        File file = new File("HelloWorld.pdf");
        try (PDDocument document = PDDocument.load(file)) {
            PDPage page = document.getPage(0);
            try (PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true)) {
                contentStream.beginText();
                contentStream.setFont(PDType1Font.HELVETICA, 12);
                contentStream.newLineAtOffset(25, 680);
                contentStream.showText("This text is added to the existing PDF.");
                contentStream.endText();
            }
            document.save("EditedHelloWorld.pdf");
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("PDF edited successfully!");
    }
}

Bước 7: Biên dịch và chạy ứng dụng chỉnh sửa

Tương tự như bước trước, bạn biên dịch và chạy lại ứng dụng:

mvn clean package
java -cp target/pdfbox-example-1.0-SNAPSHOT.jar com.example.EditPDF

Sau khi chạy ứng dụng, một tệp PDF mới có tên EditedHelloWorld.pdf sẽ được tạo ra, bao gồm cả nội dung đã chỉnh sửa.

Trích xuất nội dung từ tệp PDF

Ngoài việc tạo và chỉnh sửa, PDFBox cũng giúp bạn trích xuất văn bản từ tệp PDF. Dưới đây là cách thực hiện việc này.

Bước 8: Trích xuất văn bản

Tạo lớp Java mới, ví dụ ExtractPDF.java, và thêm mã sau vào lớp này:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;

public class ExtractPDF {
    public static void main(String[] args) {
        File file = new File("EditedHelloWorld.pdf");
        try (PDDocument document = PDDocument.load(file)) {
            PDFTextStripper pdfStripper = new PDFTextStripper();
            String text = pdfStripper.getText(document);
            System.out.println("Text in the PDF: ");
            System.out.println(text);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Bước 9: Biên dịch và chạy ứng dụng trích xuất

mvn clean package
java -cp target/pdfbox-example-1.0-SNAPSHOT.jar com.example.ExtractPDF

Khi chạy ứng dụng, nó sẽ in nội dung văn bản từ tệp PDF đã chỉnh sửa ra màn hình.

Tổng kết

Apache PDFBox cung cấp khả năng mạnh mẽ để làm việc với các tệp PDF trong Java. Bài viết này đã hướng dẫn bạn cách cài đặt PDFBox, tạo và chỉnh sửa tệp PDF, cũng như trích xuất nội dung từ tệp PDF. Bạn có thể mở rộng các chức năng này để tích hợp vào ứng dụng của mình, nâng cao trải nghiệm người dùng và làm việc hiệu quả hơn với các tài liệu PDF. Chúc bạn thành công trong việc sử dụng Apache PDFBox và phát triển các ứng dụng Java của riêng mình!

Comments