[java] PDF 파일에서 텍스트 상자 추가하기(Java Apache PDFBox 사용)
PDF 파일에서 텍스트 상자를 추가하는 작업은 빈번하게 발생하는 작업 중 하나입니다. 이를 위해 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에 텍스트 상자를 추가하는 방법에 대해 알아보겠습니다.
사전 준비
PDFBox 라이브러리를 사용하기 위해 먼저 의존성을 추가해야 합니다. Maven 기반의 프로젝트라면 pom.xml
파일에 다음 의존성을 추가하세요.
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
그리고 PDF 파일을 읽고 쓰기 위해 PDFDocument
객체를 생성해야 합니다. 다음 코드를 사용하여 PDFBox
객체를 생성합니다.
PDDocument document = new PDDocument();
텍스트 상자 추가하기
PDF 파일에 텍스트 상자를 추가하기 위해서는 아래 단계를 따르면 됩니다.
PDPage
객체 생성: 페이지를 생성하고PDFDocument
객체에 추가합니다.PDPageContentStream
객체 생성: 페이지에 컨텐츠를 기록하기 위한 스트림을 생성합니다.- 텍스트 상자 생성:
PDRectangle
객체를 사용하여 텍스트 상자의 위치와 크기를 지정합니다. - 상자 내부 수정:
beginText
메서드를 호출하여 상자 내부의 텍스트를 수정합니다. - 컨텐츠 스트림 종료:
endText
메서드를 호출하여 컨텐츠 스트림을 종료합니다.
다음은 예제 코드입니다.
// 페이지 생성
PDPage page = new PDPage();
document.addPage(page);
// 컨텐츠 스트림 생성
PDPageContentStream contentStream = new PDPageContentStream(document, page);
// 텍스트 상자 생성
PDRectangle rect = new PDRectangle();
rect.setLowerLeftX(100);
rect.setLowerLeftY(500);
rect.setUpperRightX(300);
rect.setUpperRightY(550);
// 텍스트 상자 내부 수정
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.newLineAtOffset(rect.getLowerLeftX(), rect.getLowerLeftY());
contentStream.showText("Hello, World!");
contentStream.endText();
// 컨텐츠 스트림 종료
contentStream.close();
// PDF 파일 저장
document.save("output.pdf");
// PDF 문서 종료
document.close();
위 코드에서 rect
객체는 텍스트 상자의 위치와 크기를 지정하기 위해 사용됩니다. PDType1Font.HELVETICA_BOLD
는 사용할 폰트를 지정합니다. 이를 적절히 변경하여 원하는 폰트를 사용할 수 있습니다.
결론
위 예제 코드를 사용하여 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에 텍스트 상자를 추가하는 방법을 알아보았습니다. 이를 활용하여 PDF 파일을 수정하거나 보완할 수 있습니다. 추가로 필요한 자세한 정보는 Apache PDFBox 문서를 참조하세요.