Dokument Informationen und Metadaten
Ein PDF Dokument kann generelle Informationen wie den Titel, Author, und Erstellungs- sowie Modifikationsdatum enthalten.
Historisch wird diese Information durch das Verwenden einer speziellen Info Struktur gespeichert. Diese struktur kann als assoziatives Array mithilfe der öffentlichen properties Eigenschaft des Zend_Pdf Objektes gelesen und geschrieben werden:
Die folgenden Schlüssel sind im PDF v1.4 (Acrobat 5) Standard definiert:
-
Title - String, optional, der Titel des Dokuments.
-
Author - String, optional, der Name der Person die das Dokument erstellt hat.
-
Subject - String, optional, was das Dokument beschreibt.
-
Keywords - String, optional, mit dem Dokument assoziierte Wörter.
-
Creator - String, optional, wenn das Dokument von einem anderen Format zu PDF konvertiert wurde, der Name der Anwendung (zum Beispiel, Adobe FrameMaker®) die das originale Dokument erstellt hat von dem es konvertiert wurde.
-
Producer - String, optional, wenn das Dokument von einem anderen Format zu PDF konvertiert wurde, der Name der Anwendung (zum Beispiel, Acrobat Distiller) die es zu PDF konvertiert hat.
-
CreationDate - Wtring, optional, Datum und Zeit der Erstellung des Dokumentes in der folgenden Form "D:YYYYMMDDHHmmSSOHH'mm'" wobei:
YYYY ist das Jahr.
MM ist der Monat.
-
DD ist der Tag (01–31).
-
HH ist die Stunde (00–23).
-
mmist die Minute (00–59).
-
SS ist die Sekunde (00–59).
-
O ist die Relation der lokalen Zeit zur Univeral Zeit (UT), vorangestellt von einem der folgenden Zeichen +, -, oder Z (siehe anbei).
-
HH gefolgt von ' ist der absolute Wert des Offsets von UT in Stunden (00–23).
-
mm gefolgt von ' ist der absolute Wert des Offsets von UT in Minuten (00–59).
Zum Beispiel, 23. Dezember, 1998, um 19:52, U.S. Pazifik Standard Zeit, wird dargestellt durch den String "D:199812231952−08'00'".
-
ModDate - String, optional, das Datum und die Uhrzeit an dem das Dokument zuletzt geändert wurde, im selben Format wie CreationDate.
-
Trapped - bool, optional, zeigt ob das Dokument modifiziert wurde um eingeschlossene Informationen zu enthalten.
-
TRUE - Das Dokument wurde vollständig eingeschlossen; weiteres einschließen ist nicht notwendig.
-
FALSE - Das Dokument wurde bisher noch nicht eingeschlossen, wenn das Einschließen gewümscht wird muß es noch getan werden.
-
NULL - Entweder ist nicht bekannt ob das Dokument eingeschlossen wurde, oder es wurde bisher erst teilweise aber noch nicht vollständig eingeschlosssen; etwas zusätzliches Einschließen ist trotzdem noch notwendig.
-
Seit PDF v 1.6 können Metadaten in einem speziellen XML Dokument gespeichert werden das dem PDF angehängt wird (XMP - » Extensible Metadata Platform).
Dieses XML Dokument kann empfangen und dem PDF mit der Zend_Pdf::getMetadata() und der Zend_Pdf::setMetadata($metadata) Methode wieder hinzugefügt werden:
- $pdf = Zend_Pdf::load($pdfPath);
- $metadata = $pdf->getMetadata();
- $metadataDOM = new DOMDocument();
- $metadataDOM->loadXML($metadata);
- $xpath = new DOMXPath($metadataDOM);
- $pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')
- ->item(0)
- ->lookupNamespaceURI('pdf');
- $xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
- $titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')->item(0);
- $title = $titleNode->nodeValue;
- ...
- $titleNode->nodeValue = 'New title';
- $pdf->setMetadata($metadataDOM->saveXML());
- $pdf->save($pdfPath);
Übliche Eingenschaften von Dokumenten werden verdoppelt un din der Info Struktur und dem Metadaten Dokument (wenn vorhanden) gespeichert. Die anwendung des Benutzer ist dafür verantwortlich das beide Synchron gehalten werden.