Come lavorare con il modello oggetto Pdf in Java
Accedi al catalogo del documento
Il catalogo PDF è la radice dell’albero degli oggetti del documento ed è rappresentato come un PdfDictionary. Accedilo tramite Document.getCatalog() per ispezionare o modificare le proprietà a livello di documento:
try (Document doc = new Document("input.pdf")) {
PdfDictionary catalog = doc.getCatalog();
// Inspect catalog entries
}Lavora con PdfDictionary
PdfDictionary è il contenitore fondamentale chiave-valore in questo modello di oggetti PDF di basso livello. Usa PdfName.of() per creare chiavi nome e memorizzare valori di qualsiasi tipo di oggetto 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());Lavora con PdfArray
PdfArray è il tipo di sequenza ordinata in questo modello di oggetti. Gli elementi sono indicizzati a partire da zero e possono contenere qualsiasi combinazione di tipi di oggetti Pdf. Recupera i valori e castali al tipo appropriato:
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(); // 100Accedi al dizionario Trailer
Il dizionario del trailer PDF contiene la posizione della tabella di riferimento incrociato e i riferimenti al catalogo del documento (/Root) e al dizionario delle informazioni del documento (/Info):
try (Document doc = new Document("input.pdf")) {
PdfDictionary trailer = doc.getTrailer();
// Trailer contains /Root, /Info, /Encrypt entries
}Albero dei Numeri Nominati
Il modello di oggetti sottostante della specifica PDF (ciò che ISO 32000-1 chiama il livello COS) espone la struttura ad albero dei nomi PDF usata per gli alberi di numeri, come l’albero padre per gli elementi di struttura. PdfDictionary e PdfArray sono usati per attraversare gli array Nums (il nome usato dalla specifica PDF per questa costruzione, ISO 32000-1 §7.9.7 — non un simbolo Java) nei nodi dell’albero dei numeri. Questo è il API di livello più basso per lavorare con la struttura logica di un documento PDF con tag.