Zend_Pdf-Properties.xml 8.2 KB

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