Hur man arbetar med Pdf-objektmodellen i Java
Åtkomst till dokumentkatalogen
PDF-katalogen är roten i dokumentets objektträd och representeras som en PdfDictionary. Åtkomst till den via Document.getCatalog() för att inspektera eller ändra dokumentnivåegenskaper:
try (Document doc = new Document("input.pdf")) {
PdfDictionary catalog = doc.getCatalog();
// Inspect catalog entries
}Arbeta med PdfDictionary
PdfDictionary är den grundläggande nyckel-värde-behållaren i denna låg-nivå PDF-objektmodell. Använd PdfName.of() för att skapa namnnycklar och lagra värden av vilken Pdf-objekttyp som helst:
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());Arbeta med PdfArray
PdfArray är den ordnade sekvenstypen i denna objektmodell. Element är noll-indexerade och kan hålla en blandning av Pdf-objekttyper. Hämta värden och konvertera till lämplig 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(); // 100Åtkomst till Trailer Dictionary
PDF-trailerdictionaryn innehåller platsen för korsreferenstabellen samt referenser till dokumentkatalogen (/Root) och dokumentinformationsordlistan (/Info):
try (Document doc = new Document("input.pdf")) {
PdfDictionary trailer = doc.getTrailer();
// Trailer contains /Root, /Info, /Encrypt entries
}Namngivet Nummerträd
PDF-specifikationens underliggande objektmodell (det som ISO32000-1 kallar COS-lagret) avslöjar PDF-namnträdstrukturen som används för nummerträd, såsom föräldraträdet för strukturelement. PdfDictionary och PdfArray används för att traversera Nums-arrayerna (PDF-specifikationens egna benämning för detta konstruktion, ISO32000-1 §7.9.7 — inte en Java-symbol) i nummerträdsnoderna. Detta är den lägsta nivån av API för att arbeta med den logiska strukturen i ett taggat PDF-dokument.