소개
QPDF는 PDF 파일의 구조를 변경하되 내용을 보존하는 저 수준命令行 도구이자 C++ 라이브러리입니다. 이 도구는 PDF 파일을 직렬화하고, 암호화하거나, 파일을 분리하거나 병합하는 등의 작업을 수행하며, PDF의 내부 구조를 기반으로 한 프로그래밍 가능한 조작을 위해 설계되었습니다.
상세정보
PDF 구조 조작
QPDF는 PDF 파일의 구조를 변경하면서 내용을 보존하는 기능을 제공합니다. 이는 PDF 파일의 내부 요소를 프로그래밍 방식으로 조작할 수 있게 합니다.
파일 분할 및 병합
여러 PDF 파일을 하나로 병합하거나, 하나의 PDF 파일을 여러 파일로 분리하는 작업을 수행할 수 있습니다.
암호화 지원
PDF 파일에 암호화를 적용하여 보안을 강화할 수 있습니다. 256비트 키를 사용할 때는 항상 AES를 사용하며, 128비트 키로도 AES를 선택할 수 있습니다.
직렬화 및 검증
PDF 파일을 직렬화하고, 파일을 검사하여 구조적 분석이나 학습 목적으로 사용할 수 있습니다.
다운로드·설치 방법
QPDF는 Scoop 패키지 관리자를 통해 설치할 수 있습니다. 패키지 ID는 ‘scoop.main.qpdf’입니다. 또한 소스 코드를 다운로드하여 직접 빌드할 수 있습니다.
소스에서 빌드하는 경우, cmake를 사용하여 설정할 수 있습니다. UNIX/Linux에서의 기본 빌드 예시는 다음과 같습니다.
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake –build build
Windows에서 Visual Studio를 사용하여 빌드할 수도 있습니다.
기본 사용법/명령어
QPDF는 명령줄 도구로, PDF 파일의 구조를 조작하기 위한 다양한 명령어를 제공합니다. 구체적인 사용법은 공식 매뉴얼(https://qpdf.readthedocs.io)에서 확인할 수 있습니다.
QPDF 라이브러리를自己的 프로그램에서 사용하려면, pkg-config의 ‘libqpdf’ 패키지 이름이나 cmake의 ‘qpdf’ 패키지를 사용할 수 있습니다.
이런 경우에 유용합니다
QPDF는 PDF 파일의 구조를 프로그래밍 방식으로 조작해야 하는 개발자에게 유용합니다. 예를 들어, PDF 파일을 자동으로 분리하거나 병합하는 스크립트를 작성할 때, 또는 PDF 파일에 암호화를 적용하여 보안을 강화해야 할 때 사용할 수 있습니다. 또한 PDF 파일의 내부 구조를 분석하거나 검증해야 하는 경우에도 활용됩니다.
지원 환경·시스템 요구사항
QPDF는 Windows 32비트 및 64비트 시스템에서 빌드 및 테스트된 것으로 확인됩니다. 빌드 시 Visual Studio나 MSYS2가 필요할 수 있습니다. zlib 및 jpeg 라이브러리가 필요하며, 선택적으로 GnuTLS나 OpenSSL이 필요할 수 있습니다.
제한 사항·확인 사항
QPDF는 PDF를 렌더링하거나 텍스트를 추출하는 기능을 제공하지 않습니다. PDF 파일의 내용을 직접 공급해야 PDF 파일을 생성할 수 있습니다. 암호화에 사용되는 일부 암호화 알고리즘은 강도가 낮을 수 있으나, 이전 PDF 파일과 리더와의 호환성을 위해 지원이 유지됩니다.
시스템 요구사항
C++17 호환 컴파일러가 라이브러리 연결에 필요합니다. 빌드 및 테스트를 위해서는 C++20을 지원하는 컴파일러가 필요합니다. zlib 및 jpeg 라이브러리에 의존합니다.


