[java] PDF 파일에 페이지 번호 추가하기(Java Apache PDFBox 사용)

이번 포스트에서는 Java Apache PDFBox를 사용하여 PDF 파일에 페이지 번호를 추가하는 방법을 알아보겠습니다. PDFBox는 자바로 작성된 오픈 소스 라이브러리로, PDF 파일을 생성하고 편집하는 데 사용할 수 있습니다.

1. PDFBox 라이브러리 추가하기

PDF 파일에 페이지 번호를 추가하기 위해 먼저 PDFBox 라이브러리를 프로젝트에 추가해야 합니다. Gradle이나 Maven 등의 빌드 도구를 사용하고 있다면, build.gradle 또는 pom.xml에 다음 의존성을 추가하세요.

dependencies {
    implementation 'org.apache.pdfbox:pdfbox:2.0.25'
}

직접 다운로드하여 프로젝트에 추가하고 싶다면, Apache PDFBox 홈페이지에서 라이브러리 파일을 다운로드하세요.

2. PDF 파일에 페이지 번호 추가하기

이제 PDF 파일에 페이지 번호를 추가하기 위한 코드를 작성해보겠습니다. 아래의 예제 코드는 단일 페이지 PDF 파일에 페이지 번호를 추가하는 방법을 보여줍니다.

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

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

public class AddPageNumbersToPDF {

    public static void main(String[] args) {
        try {
            // PDF 파일 로드
            PDDocument document = PDDocument.load(new File("input.pdf"));

            // PDF 파일의 페이지 수
            int pageCount = document.getNumberOfPages();

            // 각 페이지에 페이지 번호 추가
            for (int i = 0; i < pageCount; i++) {
                PDPage page = document.getPage(i);
                PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);

                // 페이지 번호 텍스트 설정
                contentStream.beginText();
                contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
                contentStream.setLeading(14.5f);
                contentStream.newLineAtOffset(30, 30);
                contentStream.showText("페이지 " + (i + 1));
                contentStream.endText();
                contentStream.close();
            }

            // 수정된 PDF 파일 저장
            document.save(new File("output.pdf"));
            document.close();

            System.out.println("페이지 번호가 추가된 PDF 파일이 생성되었습니다.");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서 “input.pdf”는 원본 PDF 파일 경로를, “output.pdf”는 페이지 번호가 추가된 새로운 PDF 파일 경로를 나타냅니다.

3. 실행 및 결과 확인

코드를 실행하면 입력한 PDF 파일로부터 페이지 번호가 추가된 새로운 PDF 파일이 생성됩니다. 생성된 파일을 열어보면 각 페이지의 상단에 “페이지 X”라는 텍스트가 추가된 것을 확인할 수 있습니다.

결론

이번 포스트에서는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에 페이지 번호를 추가하는 방법을 알아보았습니다. PDFBox는 강력하고 유용한 라이브러리이며, 이를 통해 다양한 PDF 편집 작업을 수행할 수 있습니다. 추가적인 정보나 자세한 사용법은 PDFBox 홈페이지를 참고하세요.