| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <!-- EN-Revision: 13835 -->
- <sect1 id="zend.pdf.info">
- <!-- @todo review and revise upon completion of refactoring -->
- <title>Informations du document et métadonnées.</title>
- <para>Un document PDF peut inclure des informations générales comme le titre du document, l'auteur et les dates de
- création ou de modification.</para>
- <para>Historiquement ces informations sont stockées dans une structure spéciale Info. Cette structure est disponible
- en lecture/écriture sous la forme d'un tableau associatif en utilisant la propriété publique <code>properties</code>
- des objets <classname>Zend_Pdf</classname> : <programlisting role="php"><![CDATA[
- $pdf = Zend_Pdf::load($pdfPath);
- echo $pdf->properties['Title'] . "\n";
- echo $pdf->properties['Author'] . "\n";
- $pdf->properties['Title'] = 'Nouveau Titre.';
- $pdf->save($pdfPath);
- ]]></programlisting></para>
- <para>Les clés suivantes sont définies par la norme PDF v1.4 (Acrobat 5) : <itemizedlist>
- <listitem>
- <para><emphasis>Title</emphasis> - string, optionnel, le titre du document.</para>
- </listitem>
- <listitem>
- <para><emphasis>Author</emphasis> - string, optionnel, le nom de la personne qui a créé le
- document.</para>
- </listitem>
- <listitem>
- <para><emphasis>Subject</emphasis> - string, optionnel, le sujet du document.</para>
- </listitem>
- <listitem>
- <para><emphasis>Keywords</emphasis> - string, optionnel, les mots clés associés au document.</para>
- </listitem>
- <listitem>
- <para><emphasis>Creator</emphasis> - string, optionnel, si le document a été converti en PDF à partir
- d'un autre format, le nom de l'application (par exemple, Adobe FrameMaker®) qui a créé le document
- original à partir duquel il a été converti.</para>
- </listitem>
- <listitem>
- <para><emphasis>Producer</emphasis> - string, optionnel, si le document a été converti en PDF à partir
- d'un autre format, le nom de l'application (par exemple, Acrobat Distiller) qui l'a converti en
- PDF.</para>
- </listitem>
- <listitem>
- <para><emphasis>CreationDate</emphasis> - string, optionnel, la date et l'heure auxquelles le document a
- été créé sous la forme suivante : "D:YYYYMMDDHHmmSSOHH'mm'", où : <itemizedlist>
- <listitem>
- <para><emphasis>YYYY</emphasis> est la date.</para>
- </listitem>
- <listitem>
- <para><emphasis>MM</emphasis> est le mois.</para>
- </listitem>
- <listitem>
- <para><emphasis>DD</emphasis> est le jour (01–31).</para>
- </listitem>
- <listitem>
- <para><emphasis>HH</emphasis> est l'heure (00–23).</para>
- </listitem>
- <listitem>
- <para><emphasis>mm</emphasis> est la minute (00–59).</para>
- </listitem>
- <listitem>
- <para><emphasis>SS</emphasis> est la seconde (00–59).</para>
- </listitem>
- <listitem>
- <para><emphasis>O</emphasis> est la différence de l'heure locale par rapport au temps
- universel (UT), dénoté par un des caractères +, de −, ou de Z (voir ci-dessous).</para>
- </listitem>
- <listitem>
- <para><emphasis>HH</emphasis> suivi par ' est la valeur absolue du décalage par rapport à
- l'UT en heures (00–23).</para>
- </listitem>
- <listitem>
- <para><emphasis>mm</emphasis> suivi par ' est la valeur absolue du décalage par rapport à
- l'UT en minutes (00–59).</para>
- </listitem>
- </itemizedlist> Le caractère apostrophe (') après "HH" et "mm" est un élément de la syntaxe. Chaque
- champs après l'année est optionnel. (Le préfixe "D:", bien que lui aussi optionnel, est fortement
- recommandé.) Les valeurs par défaut pour "MM" et "DD" sont à "01" ; tous les autres champs numériques
- ont par défaut des valeurs à zéro. Un signe plus (+) en tant que valeur pour le champs "0" signifie que
- l'heure locale est après l'UT, un signe moins (-) que l'heure locale est avant l'UT, et la lettre "Z"
- que l'heure locale est égale à l'UT. Si aucune information concernant l'UT n'est spécifiée, la
- différence par rapport à l'UT est considérée inconnue. Que le décalage horaire soit connu ou non, le
- reste de la date devrait être exprimée en heure locale.</para>
- <para>Par exemple la date "23 décembre 1998 à 19:52 (heure locale U.S. Pacifique)" est représentée par
- la chaîne "D:199812231952−08'00'".</para>
- </listitem>
- <listitem>
- <para><emphasis>ModDate</emphasis> - string, optionnel, la date et l'heure auxquelles le document a été
- le plus récemment modifié, sous la même forme que <emphasis>CreationDate</emphasis>.</para>
- </listitem>
- <listitem>
- <para><emphasis>Trapped</emphasis> - boolean, optionnel, indique si le document à été modifié pour
- inclure une information de "trapping". <itemizedlist>
- <listitem>
- <para><emphasis>true</emphasis> - Le document a été entièrement "trappé" ; aucun autre
- "trapping" n'est nécessaire.</para>
- </listitem>
- <listitem>
- <para><emphasis>false</emphasis> - Le document n'a pas encore été "trappé" ; tout "trapping"
- reste encore à réaliser.</para>
- </listitem>
- <listitem>
- <para><emphasis>null</emphasis> - Soit il est impossible de savoir si le document a été
- "trappé", soit il a été partiellement "trappé" ; certains "trapping" additionnels sont
- nécessaires.</para>
- </listitem>
- </itemizedlist></para>
- </listitem>
- </itemizedlist></para>
- <para>Depuis la version v1.6 de la norme PDF, les métadonnées peuvent être stockées dans un document XML spécial
- attaché au document PDF (XMP - <ulink url="http://www.adobe.com/products/xmp/">eXtensible Metadata
- Platform</ulink>).</para>
- <para>Ce document XML peut être récupéré et attaché au document PDF avec les méthodes
- <classname>Zend_Pdf::getMetadata()</classname> et <classname>Zend_Pdf::setMetadata($metadata)</classname> : <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 = 'Nouveau titre';
- $pdf->setMetadata($metadataDOM->saveXML());
- $pdf->save($pdfPath);
- ]]></programlisting></para>
- <para>Les propriétés communes du document sont dupliquées dans la structure Info et dans le document de métadonnées
- (s'il est présent). Il est de la responsabilité de l'utilisateur de l'application de les maintenir
- synchronisées.</para>
- </sect1>
|