[java] Apache PDFBox를 이용한 PDF 파일 수정

Apache PDFBox는 Java를 사용하여 PDF 파일을 생성, 수정 및 처리하는 데 사용할 수 있는 오픈 소스 라이브러리입니다. 이 라이브러리는 글꼴, 그래픽, 이미지 등 다양한 PDF 콘텐츠를 다룰 수 있어 많은 사용자들에게 인기가 있습니다. 이번 글에서는 Apache PDFBox를 사용하여 PDF 파일을 수정하는 방법에 대해 알아보겠습니다.

Apache PDFBox 라이브러리 추가

먼저, Apache PDFBox 라이브러리를 프로젝트에 추가해야 합니다. 이를 위해 Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가합니다.

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.25</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 추가합니다.

implementation 'org.apache.pdfbox:pdfbox:2.0.25'

PDF 파일 수정

PDF 파일을 수정하기 위해 먼저 PDDocument 객체를 생성해야 합니다. 다음은 PDF 페이지에 텍스트를 추가하고 저장하는 간단한 예제 코드입니다.

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 PdfEditor {
    public static void main(String[] args) {
        try {
            File file = new File("example.pdf");
            PDDocument document = PDDocument.load(file);
            PDPage page = document.getPage(0);

            PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
            contentStream.beginText();
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            contentStream.newLineAtOffset(100, 700);
            contentStream.showText("Hello, PDFBox!");
            contentStream.endText();
            contentStream.close();

            document.save("example-modified.pdf");
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서는 PDDocument로 PDF를 로드하고, 첫 번째 페이지를 가져온 뒤, 페이지 콘텐츠 스트림을 생성하여 텍스트를 추가하고 수정한 후에 PDF를 저장합니다.

Apache PDFBox를 사용하여 PDF 파일을 수정하는 방법에 대해 간단히 살펴보았습니다.

참고 자료