[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / module_specs / Zend_Pdf-Properties.xml
blob859ff93690eb21af1b6e3a6004919389ca41112c
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 21829 -->
3 <!-- Reviewed: no -->
4 <sect1 id="zend.pdf.info">
5     <!-- @todo review and revise upon completion of refactoring -->
7     <title>Informations du document et métadonnées</title>
9     <para>
10         Un document <acronym>PDF</acronym> peut inclure des informations générales comme le titre du document,
11         l'auteur et les dates de création ou de modification.
12     </para>
14     <para>
15         Historiquement ces informations sont stockées dans une structure spéciale Info. Cette
16         structure est disponible en lecture/écriture sous la forme d'un tableau associatif en
17         utilisant la propriété publique <code>properties</code> des objets
18         <classname>Zend_Pdf</classname> : <programlisting language="php"><![CDATA[
19 $pdf = Zend_Pdf::load($pdfPath);
21 echo $pdf->properties['Title'] . "\n";
22 echo $pdf->properties['Author'] . "\n";
24 $pdf->properties['Title'] = 'Nouveau Titre.';
25 $pdf->save($pdfPath);
26 ]]></programlisting></para>
28     <para>
29         Les clés suivantes sont définies par la norme <acronym>PDF</acronym> v1.4 (Acrobat 5) : <itemizedlist>
30                 <listitem>
31                 <para>
32                     <emphasis>Title</emphasis> - string, optionnel, le titre du
33                     document.
34                 </para>
35             </listitem>
37             <listitem>
38                 <para>
39                     <emphasis>Author</emphasis> - string, optionnel, le nom de la personne qui
40                     a créé le document.
41                 </para>
42             </listitem>
44             <listitem>
45                 <para>
46                     <emphasis>Subject</emphasis> - string, optionnel, le sujet du
47                     document.
48                 </para>
49             </listitem>
51             <listitem>
52                 <para>
53                     <emphasis>Keywords</emphasis> - string, optionnel, les mots clés associés
54                     au document.
55                 </para>
56             </listitem>
58             <listitem>
59                 <para>
60                     <emphasis>Creator</emphasis> - string, optionnel, si le document a été
61                     converti en <acronym>PDF</acronym> à partir d'un autre format, le nom de l'application (par
62                     exemple, Adobe FrameMaker®) qui a créé le document original à partir duquel il a
63                     été converti.
64                 </para>
65             </listitem>
67             <listitem>
68                 <para>
69                     <emphasis>Producer</emphasis> - string, optionnel, si le document a été
70                     converti en <acronym>PDF</acronym> à partir d'un autre format, le nom de l'application (par
71                     exemple, Acrobat Distiller) qui l'a converti en <acronym>PDF</acronym>.
72                 </para>
73             </listitem>
75             <listitem>
76                 <para>
77                     <emphasis>CreationDate</emphasis> - string, optionnel, la date et l'heure
78                     auxquelles le document a été créé sous la forme suivante :
79                     "D:YYYYMMDDHHmmSSOHH'mm'", où : <itemizedlist>
80                             <listitem>
81                                 <para><emphasis>YYYY</emphasis> est la date.</para>
82                             </listitem>
84                             <listitem>
85                                 <para><emphasis>MM</emphasis> est le mois.</para>
86                             </listitem>
88                             <listitem>
89                                 <para><emphasis>DD</emphasis> est le jour (01–31).</para>
90                             </listitem>
92                             <listitem>
93                                 <para><emphasis>HH</emphasis> est l'heure (00–23).</para>
94                             </listitem>
96                             <listitem>
97                                 <para><emphasis>mm</emphasis> est la minute (00–59).</para>
98                             </listitem>
100                             <listitem>
101                                 <para><emphasis>SS</emphasis> est la seconde (00–59).</para>
102                             </listitem>
104                             <listitem>
105                             <para>
106                                 <emphasis>O</emphasis> est la différence de l'heure locale par
107                                 rapport au temps universel (UT), dénoté par un des caractères +, de
108                                 −, ou de Z (voir ci-dessous).
109                             </para>
110                         </listitem>
112                         <listitem>
113                             <para>
114                                 <emphasis>HH</emphasis> suivi par ' est la valeur absolue du
115                                 décalage par rapport à l'UT en heures (00–23).
116                             </para>
117                         </listitem>
119                         <listitem>
120                             <para>
121                                 <emphasis>mm</emphasis> suivi par ' est la valeur absolue du
122                                 décalage par rapport à l'UT en minutes (00–59).
123                             </para>
124                         </listitem>
125                     </itemizedlist> Le caractère apostrophe (') après "HH" et "mm" est un
126                 élément de la syntaxe. Chaque champs après l'année est optionnel. (Le préfixe
127                 "D:", bien que lui aussi optionnel, est fortement recommandé.) Les valeurs par
128                 défaut pour "MM" et "DD" sont à "01" ; tous les autres champs numériques ont par
129                 défaut des valeurs à zéro. Un signe plus (+) en tant que valeur pour le champs
130                 "0" signifie que l'heure locale est après l'UT, un signe moins (-) que l'heure
131                 locale est avant l'UT, et la lettre "Z" que l'heure locale est égale à l'UT. Si
132                 aucune information concernant l'UT n'est spécifiée, la différence par rapport à
133                 l'UT est considérée inconnue. Que le décalage horaire soit connu ou non, le
134                     reste de la date devrait être exprimée en heure locale.
135                 </para>
137                 <para>
138                     Par exemple la date "23 décembre 1998 à 19:52 (heure locale U.S.
139                     Pacifique)" est représentée par la chaîne "D:199812231952−08'00'".
140                 </para>
141             </listitem>
143             <listitem>
144                 <para>
145                     <emphasis>ModDate</emphasis> - string, optionnel, la date et l'heure
146                     auxquelles le document a été le plus récemment modifié, sous la même forme que
147                     <emphasis>CreationDate</emphasis>.
148                 </para>
149             </listitem>
151             <listitem>
152                 <para>
153                     <emphasis>Trapped</emphasis> - boolean, optionnel, indique si le document
154                     à été modifié pour inclure une information de "trapping". <itemizedlist>
155                             <listitem>
156                             <para>
157                                 <emphasis>true</emphasis> - Le document a été entièrement
158                                 "trappé" ; aucun autre "trapping" n'est nécessaire.
159                             </para>
160                         </listitem>
162                         <listitem>
163                             <para>
164                                 <emphasis>false</emphasis> - Le document n'a pas encore été
165                                 "trappé" ; tout "trapping" reste encore à réaliser.
166                             </para>
167                         </listitem>
169                         <listitem>
170                             <para>
171                                 <emphasis>null</emphasis> - Soit il est impossible de savoir
172                                 si le document a été "trappé", soit il a été partiellement "trappé"
173                                 ; certains "trapping" additionnels sont nécessaires.
174                             </para>
175                         </listitem>
176                         </itemizedlist>
177                     </para>
178             </listitem>
179             </itemizedlist>
180         </para>
182     <para>
183         Depuis la version v1.6 de la norme <acronym>PDF</acronym>, les métadonnées peuvent être stockées dans un
184         document <acronym>XML</acronym> spécial attaché au document <acronym>PDF</acronym> (XMP - <ulink
185         url="http://www.adobe.com/products/xmp/">eXtensible Metadata Platform</ulink>).
186     </para>
188     <para>
189         Ce document XML peut être récupéré et attaché au document PDF avec les méthodes
190         <methodname>Zend_Pdf::getMetadata()</methodname> et
191         <methodname>Zend_Pdf::setMetadata($metadata)</methodname> : <programlisting
192         role="php"><![CDATA[
193 $pdf = Zend_Pdf::load($pdfPath);
194 $metadata = $pdf->getMetadata();
195 $metadataDOM = new DOMDocument();
196 $metadataDOM->loadXML($metadata);
198 $xpath = new DOMXPath($metadataDOM);
199 $pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')
200                                 ->item(0)
201                                 ->lookupNamespaceURI('pdf');
202 $xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
204 $titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')
205                    ->item(0);
206 $title = $titleNode->nodeValue;
209 $titleNode->nodeValue = 'Nouveau titre';
210 $pdf->setMetadata($metadataDOM->saveXML());
211 $pdf->save($pdfPath);
212 ]]></programlisting></para>
214     <para>
215         Les propriétés communes du document sont dupliquées dans la structure Info et dans le
216         document de métadonnées (s'il est présent). Il est de la responsabilité de l'utilisateur de
217         l'application de les maintenir synchronisées.
218     </para>
219 </sect1>