Java에서 Pdf 객체 모델을 사용하는 방법
문서 카탈로그에 접근하기
PDF 카탈로그는 문서 객체 트리의 루트이며 PdfDictionary로 표현됩니다. Document.getCatalog()를 통해 접근하여 문서 수준 속성을 검사하거나 수정할 수 있습니다:
try (Document doc = new Document("input.pdf")) {
PdfDictionary catalog = doc.getCatalog();
// Inspect catalog entries
}PdfDictionary 작업하기
PdfDictionary은 이 저수준 PDF 객체 모델에서 기본적인 키-값 컨테이너입니다. PdfName.of()을 사용하여 이름 키를 만들고 모든 Pdf 객체 유형의 값을 저장할 수 있습니다:
PdfDictionary dict = new PdfDictionary();
dict.set(PdfName.of("Title"), new PdfString("My Document"));
PdfString title = (PdfString) dict.get(PdfName.of("Title"));
System.out.println(title.getString());PdfArray 작업하기
PdfArray은 이 객체 모델에서 순서가 있는 시퀀스 타입입니다. 요소는 0부터 인덱싱되며 Pdf 객체 유형을 혼합해서 가질 수 있습니다. 값을 가져와 적절한 타입으로 변환하세요:
PdfArray array = new PdfArray();
array.add(PdfInteger.valueOf(100));
array.add(PdfInteger.valueOf(200));
array.add(PdfInteger.valueOf(300));
System.out.println("Array length: " + array.size());
int first = ((PdfInteger) array.get(0)).intValue(); // 100트레일러 사전 접근하기
PDF 트레일러 사전에는 교차 참조 테이블 위치와 문서 카탈로그 (/Root) 및 문서 정보 사전 (/Info)에 대한 참조가 포함됩니다:
try (Document doc = new Document("input.pdf")) {
PdfDictionary trailer = doc.getTrailer();
// Trailer contains /Root, /Info, /Encrypt entries
}명명된 숫자 트리
PDF 사양의 기본 객체 모델(ISO 32000-1에서 COS 레이어라고 부르는)은 구조 요소의 상위 트리와 같은 번호 트리에 사용되는 PDF 이름 트리 구조를 노출합니다. PdfDictionary와 PdfArray는 번호 트리 노드에서 Nums 배열(이 구조에 대한 PDF 사양 자체 명칭, ISO 32000-1 §7.9.7 — Java 기호가 아님)을 탐색하는 데 사용됩니다. 이것은 태그가 지정된 PDF 문서의 논리적 구조를 작업하기 위한 가장 낮은 수준의 API입니다.