| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15157 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.pdf.info">
- <!-- @todo review and revise upon completion of refactoring -->
- <title>Dokument Informationen und Metadaten</title>
- <para>
- Ein PDF Dokument kann generelle Informationen wie den Titel, Author, und Erstellungs- sowie
- Modifikationsdatum enthalten.
- </para>
- <para>
- Historisch wird diese Information durch das Verwenden einer speziellen Info Struktur gespeichert.
- Diese struktur kann als assoziatives Array mithilfe der öffentlichen <code>properties</code> Eigenschaft
- des <classname>Zend_Pdf</classname> Objektes gelesen und geschrieben werden:
- <programlisting role="php"><![CDATA[
- $pdf = Zend_Pdf::load($pdfPath);
- echo $pdf->properties['Title'] . "\n";
- echo $pdf->properties['Author'] . "\n";
- $pdf->properties['Title'] = 'Neuer Titel.';
- $pdf->save($pdfPath);
- ]]></programlisting>
- </para>
- <para>
- Die folgenden Schlüssel sind im PDF v1.4 (Acrobat 5) Standard definiert:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Title</emphasis> - String, optional, der Titel des Dokuments.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Author</emphasis> - String, optional, der Name der Person die das Dokument
- erstellt hat.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Subject</emphasis> - String, optional, was das Dokument beschreibt.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Keywords</emphasis> - String, optional, mit dem Dokument assoziierte Wörter.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Creator</emphasis> - 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.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Producer</emphasis> - 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.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CreationDate</emphasis> - Wtring, optional, Datum und Zeit der Erstellung des
- Dokumentes in der folgenden Form "D:YYYYMMDDHHmmSSOHH'mm'" wobei:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>YYYY</emphasis> ist das Jahr.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>MM</emphasis> ist der Monat.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>DD</emphasis> ist der Tag (01–31).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>HH</emphasis> ist die Stunde (00–23).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mm</emphasis>ist die Minute (00–59).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>SS</emphasis> ist die Sekunde (00–59).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>O</emphasis> ist die Relation der lokalen Zeit zur Univeral Zeit (UT),
- vorangestellt von einem der folgenden Zeichen +, -, oder Z (siehe anbei).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>HH</emphasis> gefolgt von ' ist der absolute Wert des Offsets von UT
- in Stunden (00–23).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mm</emphasis> gefolgt von ' ist der absolute Wert des Offsets von
- UT in Minuten (00–59).
- </para>
- </listitem>
- </itemizedlist>
- Das Apostroph Zeichen (') nach HH und mm ist Teil der Syntax. Alle Felder nach dem Jahr sind
- optional. (Die Prefix D:, obwohl auch optional, wird dringend empfohlen.) Der Standardwert
- für MM und DD sind beide 01; alle anderen numerischen Felder sind standardmäßig 0. Ein
- Pluszeichen (+) als Wert des O Feldes bedeutet das die lokale Zeit später als UT ist, ein
- Minuszeiche das die lokale Zeit früher als UT ist, und das Zeichen Z das die lokale Zeit
- identisch mit UT ist. Wenn keine UT Information spezifiziert ist, wird die Relation der
- spezifizierten Zeit zu UT als unbekannt angenommen. Egal ob die Zeitzone bekannt ist oder
- nicht, sollte der Rest des Datums in lokaler Zeit spezifiziert werden.
- </para>
- <para>
- Zum Beispiel, 23. Dezember, 1998, um 19:52, U.S. Pazifik Standard Zeit, wird dargestellt
- durch den String "D:199812231952−08'00'".
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ModDate</emphasis> - String, optional, das Datum und die Uhrzeit an dem das Dokument
- zuletzt geändert wurde, im selben Format wie <emphasis>CreationDate</emphasis>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Trapped</emphasis> - bool, optional, zeigt ob das Dokument modifiziert wurde um
- eingeschlossene Informationen zu enthalten.
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>true</emphasis> - Das Dokument wurde vollständig eingeschlossen;
- weiteres einschließen ist nicht notwendig.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>false</emphasis> - Das Dokument wurde bisher noch nicht eingeschlossen,
- wenn das Einschließen gewümscht wird muß es noch getan werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>null</emphasis> - 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.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Seit PDF v 1.6 können Metadaten in einem speziellen XML Dokument gespeichert werden das dem PDF
- angehängt wird (XMP - <ulink url="http://www.adobe.com/products/xmp/">Extensible Metadata Platform</ulink>).
- </para>
- <para>
- Dieses XML Dokument kann empfangen und dem PDF mit der <classname>Zend_Pdf::getMetadata()</classname> und der
- <classname>Zend_Pdf::setMetadata($metadata)</classname> Methode wieder hinzugefügt werden:
- <programlisting role="php"><![CDATA[
- $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);
- ]]></programlisting>
- </para>
- <para>
- Ü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.
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|