Jak pracovat s modelem objektů PDF v Java
Přístup ke katalogu dokumentu
Katalog PDF je kořenem stromu objektů dokumentu a je reprezentován jako PdfDictionary. Přistupujte k němu pomocí Document.getCatalog() pro prohlížení nebo úpravu vlastností na úrovni dokumentu:
try (Document doc = new Document("input.pdf")) {
PdfDictionary catalog = doc.getCatalog();
// Inspect catalog entries
}Pracujte s PdfDictionary
PdfDictionary je základní kontejner klíč-hodnota v tomto nízkoúrovňovém modelu objektů PDF. Použijte PdfName.of() k vytvoření názvových klíčů a uložení hodnot libovolného typu objektu 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());Pracujte s PdfArray
PdfArray je typ uspořádané sekvence v tomto modelu objektů. Prvky jsou indexovány od nuly a mohou obsahovat libovolnou kombinaci typů objektů Pdf. Získejte hodnoty a přetypujte je na požadovaný 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(); // 100Přístup ke slovníku Trailer
Trailer slovník PDF obsahuje umístění tabulky křížových odkazů a odkazy na katalog dokumentu (/Root) a slovník informací o dokumentu (/Info):
try (Document doc = new Document("input.pdf")) {
PdfDictionary trailer = doc.getTrailer();
// Trailer contains /Root, /Info, /Encrypt entries
}Strom pojmenovaných čísel
Základní objektový model specifikace PDF (to, co ISO32000-1 nazývá vrstvou COS) odhaluje strukturu stromu názvů PDF používanou pro číselné stromy, jako je rodičovský strom pro strukturované elementy. PdfDictionary a PdfArray se používají k procházení polí Nums (vlastní název specifikace PDF pro tento konstrukt, ISO32000-1 §7.9.7— ne Java symbol) v uzlech číselného stromu. Jedná se o nejnižší úroveň API pro práci s logickou strukturou označeného PDF dokumentu.