소개
Apache PDFBox는 Apache Software Foundation에서 개발한 오픈소스 Java 라이브러리로, PDF 문서를 생성, 조작, 콘텐츠 추출하는 데 사용됩니다. 이 도구는 Java 11 이상에서 실행되며, 여러 명령줄 유틸리티를 포함하여 터미널에서 PDF 작업을 수행할 수 있습니다. Apache 라이선스 2.0 하에 배포되며, Windows를 포함한 크로스플랫폼 환경에서 사용 가능합니다.
상세정보
PDF 생성 및 수정
PDFBox를 사용하면 빈 문서에서부터 PDF를 생성하거나, 기존 PDF에 텍스트, 이미지, 폰트를 추가하여 수정할 수 있습니다. 내부 폰트와 이미지를 임베드하여 외부 의존 없이 완전한 PDF 파일을 만들 수 있습니다.
콘텐츠 추출
PDF 파일에서 Unicode 텍스트를 추출하거나, 폼 데이터를 읽고 채울 수 있습니다. 또한, 이미지(PNG, JPEG 등)로 저장하거나, PDF/A-1b 표준에 대한 사전 검증(Preflight)을 수행할 수 있습니다.
명령줄 유틸리티
PDFBox는 다음과 같은 명령줄 도구를 포함합니다:
- 텍스트 추출: PDF에서 텍스트를 추출하는 도구
- 분할 및 병합: 하나의 PDF를 여러 파일로 나누거나 여러 PDF를 하나로 결합
- 폼 처리: PDF 폼에서 데이터 추출 또는 폼 채우기
- 이미지 저장: PDF 페이지를 PNG 또는 JPEG 이미지로 변환
- 인쇄: 표준 Java 인쇄 API를 사용하여 PDF 인쇄
- 디지털 서명: PDF 파일에 디지털 서명 추가
다운로드·설치 방법
공식 웹사이트에서 binary 파일을 다운로드할 수 있습니다. Windows 사용자는 Scoop 패키지 관리자를 통해 `scoop install pdfbox` 명령으로 설치할 수 있습니다. 소스 코드에서 직접 빌드하려면 Java 11 이상과 Maven 3이 설치되어 있어야 하며, 저장소를 클론한 후 `mvn clean install` 명령을 실행하면 됩니다.
기본 사용법/명령어
명령줄 유틸리티를 사용하는 기본 방법은 다음과 같습니다:
- 텍스트 추출: `java -jar pdfbox-app.jar ExtractText input.pdf output.txt`
- PDF 분할: `java -jar pdfbox-app.jar SplitPDF input.pdf`
- PDF 병합: `java -jar pdfbox-app.jar MergePDF input1.pdf input2.pdf output.pdf`
- 이미지로 저장: `java -jar pdfbox-app.jar PDFToImage input.pdf`
- 폼 채우기: `java -jar pdfbox-app.jar FillForm input.pdf data.fdf output.pdf`
위 명령어에서 `pdfbox-app.jar`는 공식 다운로드 페이지에서 받을 수 있는 실행 가능한 JAR 파일입니다. 각 명령어는 입력 파일과 출력 파일 경로를 지정하여 사용하며, 자세한 옵션은 공식 문서의 Command-Tools 섹션을 참조하십시오.
이런 경우에 유용합니다
PDF에서 대량의 텍스트를 추출해야 하는 데이터 처리 작업 시, PDFBox의 텍스트 추출 도구를 사용하면 효율적으로 정보를 얻을 수 있습니다. 여러 부서에서 받은 PDF 보고서를 하나로 통합해야 할 때는 병합 기능을, 양식 형식의 PDF에서 데이터를 자동으로 입력해야 할 때는 폼 채우기 유틸리티를 활용할 수 있습니다. 또한, 아카이브 목적으로 PDF 페이지를 이미지 형태로 변환해야 하는 경우에도 유용합니다.
지원 환경·시스템 요구사항
PDFBox는 Java 11 이상을 요구하며, 이는 Windows 10/11, macOS, Linux 배포판 등에서 Java 런타임이 설치되어 있다면 실행 가능합니다. 명령줄 도구를 사용할 때는 별도의 설치 없이 JAR 파일만 있으면 실행할 수 있으며, 개발자로서 라이브러리를 프로젝트에 통합하려면 Maven 또는 Gradle을 통해 의존성을 추가할 수 있습니다.
최신 버전·업데이트
최신 안정 버전은 3.0.8로, 2026-07-11에リリース되었습니다. 이전 버전인 3.0.7, 3.0.6 등은 2026년 초부터 순차적으로リリース되었으며, 각 버전의 상세 변경 사항은 공식 웹사이트의 release notes 페이지에서 확인할 수 있습니다. 또한, 관련 플러그인인 JBIG2 ImageIO도 별도로 버전 관리되고 있습니다.
제한 사항·확인 사항
일부 고급 PDF 기능(JBIG2 이미지 읽기, JPEG 2000 지원, TIFF 이미지 쓰기 등)은 Apache 2.0 라이선스와 호환되지 않는 서드파티 라이브러리(JBIG2 ImageIO, JAI Image I/O Tools)가 필요합니다. 이러한 기능이 필요한 경우 해당 라이브러리를 별도로 다운로드하여 클래스패스에 추가해야 합니다. 또한, PDFBox는 순수 Java 라이브러리이므로 네이티브 성능이 필요한 고-volume 작업에는 최적화되지 않을 수 있습니다.
시스템 요구사항
Java 11 이상과 Maven 3이 필요합니다. 빌드 시 `mvn clean install` 명령을 사용합니다.


