[java] Apache PDFBox로 PDF 파일 자동화 프로그래밍하기

PDF 파일은 다양한 용도로 사용되는 인기있는 파일 형식입니다. Apache PDFBox는 Java로 작성된 오픈 소스 라이브러리로, PDF 파일을 만들고 조작할 수 있게 해줍니다. 이번 블로그 포스트에서는 Apache PDFBox를 사용하여 PDF 파일을 자동화하는 방법에 대해 알아보겠습니다.

PDFBox 라이브러리 설치하기

PDFBox를 사용하기 위해 먼저 해당 라이브러리를 프로젝트에 추가해야 합니다. Maven과 같은 의존성 관리 도구를 사용하는 경우, pom.xml 파일에 다음 종속성을 추가할 수 있습니다.

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

필요한 종속성을 추가한 후에는 이제 PDFBox를 사용하여 PDF 파일을 자동화할 준비가 끝났습니다.

PDF 파일 생성하기

PDFBox를 사용하여 PDF 파일을 생성하기 위해 먼저 PDDocument 객체를 생성해야 합니다. 다음은 간단한 예제 코드입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public class PdfCreator {

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

        document.addPage(page);

        try {
            document.save("example.pdf");
            System.out.println("PDF 파일이 생성되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                document.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}

이 예제에서는 PDDocument 객체를 생성한 후, PDPage를 추가하고 document.save() 메소드를 사용하여 PDF 파일을 저장합니다. 생성된 PDF 파일의 이름은 “example.pdf”로 지정되며, 생성되고 나면 “PDF 파일이 생성되었습니다.” 라는 메시지가 출력됩니다.

PDF 파일 조작하기

PDF 파일을 생성하는 것 외에도 PDFBox를 사용하여 기존의 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;

public class PdfManipulator {

    public static void main(String[] args) {
        try (PDDocument document = PDDocument.load("example.pdf")) {
            PDPage page = document.getPage(0);

            PDPageContentStream contentStream = new PDPageContentStream(document, page);

            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            contentStream.beginText();
            contentStream.newLineAtOffset(100, 700);
            contentStream.showText("새로운 페이지에 추가된 텍스트입니다.");
            contentStream.endText();

            contentStream.close();

            document.save("modified_example.pdf");
            System.out.println("PDF 파일이 수정되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

이 예제에서는 load() 메소드를 사용하여 기존의 PDF 파일을 로드한 후, 첫 번째 페이지를 가져옵니다. 그런 다음 PDPageContentStream을 사용하여 새로운 텍스트를 추가합니다. 마지막으로 수정된 PDF 파일을 “modified_example.pdf”로 저장합니다. 실행하면 “PDF 파일이 수정되었습니다.” 라는 메시지가 출력됩니다.

결론

Apache PDFBox는 Java를 사용하여 PDF 파일을 자동화하는 데 유용한 라이브러리입니다. 이번 포스트에서는 PDF 파일 생성과 조작에 대한 예제 코드를 살펴보았습니다. PDF 파일을 자동화해야 하는 프로젝트가 있다면, Apache PDFBox를 고려해 보세요.

참고 자료