Jak pracować z modelem obiektowym Pdf w Java
Uzyskaj dostęp do katalogu dokumentu
Katalog PDF jest korzeniem drzewa obiektów dokumentu i jest reprezentowany jako PdfDictionary. Uzyskaj do niego dostęp za pomocą Document.getCatalog(), aby przeglądać lub modyfikować właściwości na poziomie dokumentu:
try (Document doc = new Document("input.pdf")) {
PdfDictionary catalog = doc.getCatalog();
// Inspect catalog entries
}Pracuj z PdfDictionary
PdfDictionary jest podstawowym kontenerem klucz-wartość w tym niskopoziomowym modelu obiektów PDF. Użyj PdfName.of(), aby tworzyć klucze nazw i przechowywać wartości dowolnego typu obiektu 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());Pracuj z PdfArray
PdfArray jest typem uporządkowanej sekwencji w tym modelu obiektów. Elementy są indeksowane od zera i mogą zawierać dowolną mieszankę typów obiektów Pdf. Pobierz wartości i rzutuj je na odpowiedni typ:
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(); // 100Uzyskaj dostęp do słownika Trailer
Słownik traileru PDF zawiera lokalizację tabeli odwołań krzyżowych oraz odwołania do katalogu dokumentu (/Root) i słownika informacji o dokumencie (/Info):
try (Document doc = new Document("input.pdf")) {
PdfDictionary trailer = doc.getTrailer();
// Trailer contains /Root, /Info, /Encrypt entries
}Nazwane Drzewo Numerów
Podstawowy model obiektowy specyfikacji PDF (to, co ISO 32000-1 nazywa warstwą COS) ujawnia strukturę drzewa nazw PDF używaną dla drzew liczbowych, takich jak drzewo rodzica dla elementów struktury. PdfDictionary i PdfArray są używane do przeglądania tablic Nums (własna nazwa specyfikacji PDF dla tego konstruktu, ISO 32000-1 §7.9.7 — nie symbol Java) w węzłach drzewa liczbowego. To jest najniższy poziom API do pracy z logiczną strukturą oznaczonego dokumentu PDF.