Hur man arbetar med Pdf-objektmodellen i Java

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.

Se även

 Svenska