| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- <?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>Informations du document et métadonnées</title>
- <para>
- Un document <acronym>PDF</acronym> 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 <property>properties</property> des objets
- <classname>Zend_Pdf</classname> : <programlisting language="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 <acronym>PDF</acronym> 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 <acronym>PDF</acronym> à 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 <acronym>PDF</acronym> à partir d'un autre format, le nom de l'application (par
- exemple, Acrobat Distiller) qui l'a converti en <acronym>PDF</acronym>.
- </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 <acronym>PDF</acronym>, les métadonnées peuvent être stockées dans un
- document <acronym>XML</acronym> spécial attaché au document <acronym>PDF</acronym> (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
- <methodname>Zend_Pdf::getMetadata()</methodname> et
- <methodname>Zend_Pdf::setMetadata($metadata)</methodname> : <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>
|