[java] PDF 파일에 주석 추가하기(Java Apache PDFBox 사용)

PDF 파일에 주석을 추가하는 것은 많은 사용자들에게 유용한 기능입니다. Java Apache PDFBox는 이러한 작업을 수행할 수 있는 강력한 라이브러리입니다. 이 블로그 포스트에서는 Java Apache PDFBox를 사용하여 PDF 파일에 주석을 추가하는 방법을 알아보겠습니다.

PDFBox 라이브러리 가져오기

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

<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.26</version>
    </dependency>
</dependencies>

Maven을 사용하지 않는다면, Apache PDFBox 웹사이트에서 라이브러리를 다운로드하고 프로젝트에 추가해야 합니다.

PDF 파일에 주석 추가하기

이제 PDF 파일에 주석을 추가하는 방법을 알아보겠습니다.

import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.common.*;
import org.apache.pdfbox.pdmodel.interactive.annotation.*;

public class PdfAnnotationExample {
    public static void main(String[] args) throws Exception {
        // PDF 파일 열기
        PDDocument document = PDDocument.load(new File("sample.pdf"));

        // 첫 번째 페이지 가져오기
        PDPage firstPage = document.getPage(0);

        // 주석 객체 생성
        PDAnnotationTextMarkup markup = new PDAnnotationTextMarkup(PDAnnotationTextMarkup.SUB_TYPE_HIGHLIGHT);

        // 주석 위치 설정
        PDRectangle position = new PDRectangle();
        position.setLowerLeftX(100);
        position.setLowerLeftY(500);
        position.setUpperRightX(200);
        position.setUpperRightY(550);
        markup.setRectangle(position);

        // 주석 색상 설정
        markup.setColor(new PDColor(new float[] { 1, 1, 0 }, PDDeviceRGB.INSTANCE));

        // 주석을 첫 번째 페이지에 추가
        firstPage.getAnnotations().add(markup);

        // 변경된 PDF 파일 저장
        document.save("annotated.pdf");

        // PDF 파일 닫기
        document.close();
    }
}

위의 예제 코드에서는 먼저 PDF 파일을 열고, 첫 번째 페이지를 가져옵니다. 그런 다음 주석 객체를 생성하고, 주석의 위치와 색상을 설정한 다음, 첫 번째 페이지에 주석을 추가합니다. 마지막으로 변경된 PDF 파일을 저장하고, 열린 문서를 닫습니다.

실행 결과

위의 코드를 실행하면, 주석이 추가된 새로운 PDF 파일(annotated.pdf)이 생성됩니다. 생성된 PDF 파일을 열어보면, 주석이 첫 번째 페이지에 표시되는 것을 확인할 수 있습니다.

결론

이 블로그 포스트에서는 Java Apache PDFBox를 사용하여 PDF 파일에 주석을 추가하는 방법을 알아보았습니다. PDFBox는 다양한 주석 유형을 지원하므로, 필요에 따라 원하는 주석을 생성할 수 있습니다. 추가로 사용 가능한 기능에 대한 자세한 내용은 PDFBox 문서를 참조하시기 바랍니다.

참고 자료: