[java] Apache PDFBox로 PDF 파일에 그룹 텍스트 추가하기

PDF 파일에 텍스트를 추가하고 편집하는 것은 꽤 일반적인 작업입니다. 이제 Apache PDFBox 라이브러리를 사용하여 Java로 PDF 파일에 그룹 텍스트를 추가하는 방법에 대해서 알아보겠습니다.

필요한 라이브러리 가져오기

먼저 Maven을 사용하거나 직접 JAR 파일을 다운로드하여 Apache PDFBox 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가합니다.

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

PDF 파일에 그룹 텍스트 추가하기

Apache PDFBox를 사용하여 PDF 파일에 그룹 텍스트를 추가하려면 다음 단계를 따르세요.

  1. PDF 파일을 엽니다.
PDDocument document = PDDocument.load(new File("input.pdf"));
  1. PDF 페이지를 가져옵니다.
PDPage page = document.getPage(0); // 첫 번째 페이지 가져오기
  1. 그룹 텍스트를 만들기 위해 PDPageContentStream을 생성합니다.
PDPageContentStream contentStream = new PDPageContentStream(document, page);
  1. 텍스트 스타일과 위치를 설정합니다.
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.setLeading(14.5f); // 줄 간격
contentStream.newLineAtOffset(100, 700); // 시작 위치 설정
  1. 텍스트를 그립니다.
contentStream.showText("안녕하세요, PDF에 그룹 텍스트를 추가하는 예제입니다.");
  1. PDPageContentStream을 닫고 변경 내용을 저장합니다.
contentStream.close();
document.save(new File("output.pdf"));
  1. PDDocument를 닫습니다.
document.close();

전체 예제 코드

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

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

public class PDFTextGroupingExample {

    public static void main(String[] args) {
        try {
            // 1. PDF 파일 열기
            PDDocument document = PDDocument.load(new File("input.pdf"));

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

            // 3. PDPageContentStream 생성
            PDPageContentStream contentStream = new PDPageContentStream(document, page);

            // 4. 텍스트 스타일과 위치 설정
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            contentStream.setLeading(14.5f); // 줄 간격
            contentStream.newLineAtOffset(100, 700); // 시작 위치 설정

            // 5. 텍스트 그리기
            contentStream.showText("안녕하세요, PDF에 그룹 텍스트를 추가하는 예제입니다.");

            // 6. PDPageContentStream 닫고 변경 내용 저장
            contentStream.close();
            document.save(new File("output.pdf"));

            // 7. PDDocument 닫기
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이제 위의 예제 코드를 실행하면 “input.pdf” 파일의 첫 번째 페이지에 “안녕하세요, PDF에 그룹 텍스트를 추가하는 예제입니다.”라는 텍스트가 추가된 “output.pdf” 파일을 얻을 수 있습니다.

Apache PDFBox를 사용하여 PDF 파일에 그룹 텍스트를 추가하는 방법에 대해 알아보았습니다. 이를 응용하여 다양한 텍스트 편집 작업을 수행할 수 있습니다. 참조 자료 및 추가 예제는 Apache PDFBox 공식 문서를 참조하세요.