[java] Apache PDFBox를 이용한 워터마크 추가

Apache PDFBox는 Java로 PDF 파일을 조작하기 위한 라이브러리입니다. 이 라이브러리를 활용하여 PDF 파일에 워터마크(watermark)를 추가하는 방법을 알아보겠습니다.

Apache PDFBox 라이브러리 추가

먼저 Maven 프로젝트의 pom.xml 파일에 다음 의존성을 추가합니다.

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

그런 다음 Maven 프로젝트를 업데이트하여 PDFBox 라이브러리를 가져옵니다.

PDF에 워터마크 추가하기

이제 Apache PDFBox를 사용하여 PDF에 워터마크를 추가하는 방법을 알아봅시다. 다음은 간단한 예제 코드입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

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

public class PdfWatermark {

    public static void main(String[] args) throws IOException {
        String pdfFilePath = "path_to_existing_pdf.pdf";
        String outputPdfFilePath = "path_to_output_pdf.pdf";
        String watermarkText = "Confidential";

        try (PDDocument document = PDDocument.load(new File(pdfFilePath))) {
            for (int i = 0; i < document.getNumberOfPages(); i++) {
                PDPageContentStream contentStream = new PDPageContentStream(document, document.getPage(i), PDPageContentStream.AppendMode.APPEND, true, true);
                contentStream.beginText();
                contentStream.setFont(PDType1Font.HELVETICA_BOLD, 36);
                contentStream.setLeading(14.5f);
                contentStream.newLineAtOffset(100, 400);
                contentStream.showText(watermarkText);
                contentStream.endText();
                contentStream.close();
            }
            document.save(new File(outputPdfFilePath));
        }
    }
}

위의 예제 코드는 기존 PDF 파일에 “Confidential”이라는 워터마크를 추가합니다. 이 코드를 실행하면 새로운 PDF 파일에 워터마크가 적용된 것을 확인할 수 있습니다.

Apache PDFBox를 사용하면 PDF 파일을 손쉽게 조작할 수 있으며, 워터마크 추가 외에도 다양한 작업을 수행할 수 있습니다.

결론

Apache PDFBox를 사용하여 Java에서 PDF 파일에 워터마크를 추가하는 방법을 살펴보았습니다. 이를 통해 기존 PDF 파일을 보다 역동적으로 처리할 수 있는 가능성을 열어보았습니다.

더 자세한 내용은 Apache PDFBox 공식 웹사이트에서 확인할 수 있습니다.