[java] Apache PDFBox로 PDF 파일 자동화 프로세스 만들기

PDF 파일은 현대 비즈니스에서 광범위하게 사용되는 문서 형식입니다. 이러한 PDF 파일을 자동으로 생성하고 조작해야 하는 경우, Apache PDFBox를 사용할 수 있습니다. Apache PDFBox는 Java로 작성된 오픈 소스 라이브러리로, PDF 파일 생성, 편집, 합병 등 다양한 작업을 지원합니다.

이번 블로그 포스트에서는 Apache PDFBox를 사용하여 PDF 파일 자동화 프로세스를 만드는 방법에 대해 알아보겠습니다.

1. Apache PDFBox 라이브러리 설치

먼저, Apache PDFBox를 사용하기 위해 해당 라이브러리를 다운로드하고 프로젝트에 추가해야 합니다. Maven으로 프로젝트를 관리한다면, pom.xml 파일에 다음 의존성을 추가하세요.

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

Maven이나 Gradle을 사용하지 않는다면, Apache PDFBox 웹사이트에서 라이브러리를 다운로드하여 프로젝트에 직접 추가하세요.

2. PDF 파일 생성하기

PDF 파일을 생성하려면 PDDocument 객체를 생성하고 해당 객체를 사용하여 페이지를 추가하고 내용을 작성해야 합니다. 다음 예제는 단일 페이지를 가지는 PDF 파일을 생성하는 방법을 보여줍니다.

import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;

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

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

            document.save("output.pdf");
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 PDDocument 객체를 생성하고 PDPage를 추가한 후, PDPageContentStream을 사용하여 페이지를 그리고 텍스트를 추가했습니다. 마지막으로 document를 저장하고 닫으면, output.pdf라는 이름의 PDF 파일이 생성됩니다.

3. PDF 파일 편집하기

PDF 파일을 편집하려면 기존의 PDF 파일을 불러와서 필요한 작업을 수행해야 합니다. 다음 예제는 PDF 파일을 로드하고 페이지를 선택하여 텍스트를 추가하는 방법을 보여줍니다.

import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.text.PDFTextStripper;

public class PDFEditor {
    public static void main(String[] args) {
        try {
            String filePath = "input.pdf";
            PDDocument document = PDDocument.load(new File(filePath));
            PDPage page = document.getPage(0);

            PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, true);
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            contentStream.beginText();
            contentStream.newLineAtOffset(100, 500);
            contentStream.showText("Additional text");
            contentStream.endText();
            contentStream.close();

            document.save("output.pdf");
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 PDDocument 객체를 사용하여 기존의 PDF 파일을 로드하고, getPage() 메서드를 사용하여 특정 페이지를 가져옵니다. 그런 다음 PDPageContentStream을 사용하여 새로운 텍스트를 추가하고, 편집된 PDF를 output.pdf로 저장합니다.

4. 기타 작업

Apache PDFBox는 PDF 파일 생성 및 편집 이외에도 다양한 작업을 수행할 수 있습니다. 예를 들어, 이미지를 PDF에 추가하거나 PDF 파일을 합치는 작업도 가능합니다.

더 자세한 내용은 Apache PDFBox 공식 문서를 참조하세요.

이제 Apache PDFBox를 사용하여 PDF 파일 자동화 프로세스를 만드는 방법에 대해 알아보았습니다. PDF 파일 조작에 자동화가 필요한 경우, Apache PDFBox는 강력한 도구입니다. 코드 예제를 사용하여 직접 실험해보세요!