| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.pdf.info">
- <!-- @todo review and revise upon completion of refactoring -->
- <title>Dokument Informationen und Metadaten</title>
- <para>
- Ein <acronym>PDF</acronym> 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
- <property>properties</property> Eigenschaft des <classname>Zend_Pdf</classname> Objektes
- gelesen und geschrieben werden:
- </para>
- <programlisting language="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>
- Die folgenden Schlüssel sind im <acronym>PDF</acronym> 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 <acronym>PDF</acronym> 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 <acronym>PDF</acronym> konvertiert wurde, der Name der
- Anwendung (zum Beispiel, Acrobat Distiller) die es zu <acronym>PDF</acronym>
- 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><constant>TRUE</constant></emphasis> - Das Dokument wurde
- vollständig eingeschlossen; weiteres einschließen ist nicht
- notwendig.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><constant>FALSE</constant></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><constant>NULL</constant></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 <acronym>PDF</acronym> v 1.6 können Metadaten in einem speziellen
- <acronym>XML</acronym> Dokument gespeichert werden das dem <acronym>PDF</acronym> angehängt
- wird (XMP - <ulink
- url="http://www.adobe.com/products/xmp/">Extensible Metadata Platform</ulink>).
- </para>
- <para>
- Dieses <acronym>XML</acronym> Dokument kann empfangen und dem PDF mit der
- <methodname>Zend_Pdf::getMetadata()</methodname> und der
- <methodname>Zend_Pdf::setMetadata($metadata)</methodname> Methode wieder hinzugefügt werden:
- </para>
- <programlisting language="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>
- Ü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>
|