Wie man mit dem Pdf-Objektmodell in Java arbeitet

Wie man mit dem Pdf-Objektmodell in Java arbeitet

Zugriff auf den Dokumentkatalog

Der PDF-Katalog ist die Wurzel des Objektbaums des Dokuments und wird als PdfDictionary dargestellt. Greifen Sie über Document.getCatalog() darauf zu, um dokumentenbezogene Eigenschaften zu untersuchen oder zu ändern:

try (Document doc = new Document("input.pdf")) {
    PdfDictionary catalog = doc.getCatalog();
    // Inspect catalog entries
}

Arbeiten mit PdfDictionary

PdfDictionary ist der grundlegende Schlüssel-Wert-Container in diesem Low-Level-PDF-Objektmodell. Verwenden Sie PdfName.of(), um Namensschlüssel zu erstellen und Werte beliebiger Pdf-Objekttypen zu speichern:

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());

Arbeiten mit PdfArray

PdfArray ist der geordnete Sequenztyp in diesem Objektmodell. Elemente sind nullbasiert indiziert und können beliebige Mischungen von Pdf-Objekttypen enthalten. Werte abrufen und in den entsprechenden Typ umwandeln:

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

Zugriff auf das Trailer-Wörterbuch

Das PDF-Trailer-Dictionary enthält den Ort der Cross-Reference-Tabelle und Verweise auf den Dokumentkatalog (/Root) und das Dokumentinformations-Dictionary (/Info):

try (Document doc = new Document("input.pdf")) {
    PdfDictionary trailer = doc.getTrailer();
    // Trailer contains /Root, /Info, /Encrypt entries
}

Benannter Zahlenbaum

Das zugrundeliegende Objektmodell der PDF-Spezifikation (wie ISO32000-1 die COS-Schicht nennt) legt die PDF-Namensbaum-Struktur offen, die für Zahlbäume wie den Elternbaum für Strukturelemente verwendet wird. PdfDictionary und PdfArray werden verwendet, um die Nums-Arrays (der von der PDF-Spezifikation selbst für dieses Konstrukt verwendete Name, ISO32000-1 §7.9.7— kein Java-Symbol) in den Knoten des Zahlbaums zu durchlaufen. Dies ist die niedrigste Ebene API für die Arbeit mit der logischen Struktur eines getaggten PDF-Dokuments.

Siehe auch

 Deutsch