[java] Apache PDFBox로 PDF 파일 특정 페이지 삭제하기

Apache PDFBox는 Java로 작성된 오픈 소스 라이브러리로, PDF 파일을 다루는 다양한 기능을 제공합니다. 이번 포스트에서는 Apache PDFBox를 사용하여 PDF 파일에서 특정 페이지를 삭제하는 방법에 대해 알아보겠습니다.

1. PDF 파일 읽기

먼저 PDF 파일을 읽어오기 위해 PDDocument 객체를 생성합니다. 다음은 파일을 로드하는 방법입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
 
public class Main {
    public static void main(String[] args) throws IOException {
        PDDocument document = null;
        try {
            document = PDDocument.load(new File("input.pdf"));
 
            // 파일 조작 작업을 수행
            // ...
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }
}

2. 페이지 삭제하기

특정 페이지를 삭제하기 위해서는 PDDocument 객체에서 해당 페이지를 찾고 삭제하는 작업을 해야합니다. 다음은 특정 페이지를 삭제하는 코드입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.multipdf.Splitter;
 
import java.io.IOException;
import java.util.List;
 
public class Main {
    public static void main(String[] args) throws IOException {
        PDDocument document = null;
        try {
            document = PDDocument.load(new File("input.pdf"));
 
            // 삭제할 페이지 번호
            int pageNumberToDelete = 2;
 
            // 페이지 분할기 객체 생성
            Splitter splitter = new Splitter();
 
            // 문서의 페이지들을 가져와 리스트로 변환
            List<PDDocument> pages = splitter.split(document);
 
            // 삭제할 페이지 제외하고 새 문서 생성
            pages.remove(pageNumberToDelete - 1);
            PDDocument newDocument = new PDDocument();
            for (PDDocument page : pages) {
                newDocument.addPage(page.getPage(0));
            }
 
            // 새로운 문서 저장
            newDocument.save("output.pdf");
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }
}

이 코드를 실행하면 “input.pdf”라는 파일에서 2번째 페이지가 삭제된 “output.pdf”라는 새로운 파일이 생성됩니다.

3. 실행 결과 확인

PDF 파일을 읽어와 특정 페이지를 삭제하는 코드를 실행한 후 “output.pdf” 파일을 열어 삭제된 페이지가 있는지 확인합니다.

결론

Apache PDFBox를 사용하여 Java로 PDF 파일에서 특정 페이지를 삭제하는 방법을 알아보았습니다. PDF 조작을 위한 많은 기능들을 제공하는 Apache PDFBox는 다양한 PDF 작업에 유용하게 사용될 수 있습니다.

참고 자료