Zend_Pdf-Properties.xml 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20115 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.pdf.info">
  5. <!-- @todo review and revise upon completion of refactoring -->
  6. <title>Información del Documento y Metadatos</title>
  7. <para> Un documento <acronym>PDF</acronym> puede incluir información general
  8. como el título del documento, autor, la creación y modificación de
  9. fechas. </para>
  10. <para> Históricamente, esta información se almacena usando una estructura
  11. especial de Información. Esta estructura está disponible para lectura y
  12. la escritura como una array asociativo utilizando propiedades públicas
  13. <methodname>properties</methodname> de objetos
  14. <classname>Zend_Pdf</classname> : <programlisting language="php"><![CDATA[
  15. $pdf = Zend_Pdf::load($pdfPath);
  16. echo $pdf->properties['Title'] . "\n";
  17. echo $pdf->properties['Author'] . "\n";
  18. $pdf->properties['Title'] = 'New Title.';
  19. $pdf->save($pdfPath);
  20. ]]></programlisting>
  21. </para>
  22. <para> Las siguientes claves están definidas por v1.4 <acronym>PDF</acronym>
  23. (Acrobat 5) estándar: <itemizedlist>
  24. <listitem>
  25. <para>
  26. <emphasis>Title</emphasis> - string, opcional, el título del
  27. documento. </para>
  28. </listitem>
  29. <listitem>
  30. <para>
  31. <emphasis>Author</emphasis> - string, opcional, el nombre de
  32. la persona que creó el documento. </para>
  33. </listitem>
  34. <listitem>
  35. <para>
  36. <emphasis>Subject</emphasis> - string, opcional, el tema del
  37. documento. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. <emphasis>Keywords</emphasis> - string, opcional, las
  42. palabras clave asociadas con el documento. </para>
  43. </listitem>
  44. <listitem>
  45. <para>
  46. <emphasis>Creator</emphasis> - string, opcional, si el
  47. documento se convirtió desde otro formato a
  48. <acronym>PDF</acronym> , el nombre de la aplicación (por
  49. ejemplo, Adobe FrameMaker ®) que creó el documento original
  50. a partir del cual se convirtió. </para>
  51. </listitem>
  52. <listitem>
  53. <para>
  54. <emphasis>Producer</emphasis> - string, opcional, si el
  55. documento se convirtió desde otro formato a
  56. <acronym>PDF</acronym> , el nombre de la aplicación (por
  57. ejemplo, Acrobat Distiller), que lo convirtió a
  58. <acronym>PDF</acronym> . </para>
  59. </listitem>
  60. <listitem>
  61. <para>
  62. <emphasis>CreationDate</emphasis> - string, opcional, la
  63. fecha y la hora en que el documento fue creado, en la forma
  64. siguiente: "D:YYYYMMDDHHmmSSOHH'mm'", en la que: <itemizedlist>
  65. <listitem>
  66. <para>
  67. <emphasis>YYYY</emphasis> es el año. </para>
  68. </listitem>
  69. <listitem>
  70. <para>
  71. <emphasis>MM</emphasis> es el mes. </para>
  72. </listitem>
  73. <listitem>
  74. <para>
  75. <emphasis>DD</emphasis> es el día (01–31).
  76. </para>
  77. </listitem>
  78. <listitem>
  79. <para>
  80. <emphasis>HH</emphasis> es la hora (00–23).
  81. </para>
  82. </listitem>
  83. <listitem>
  84. <para>
  85. <emphasis>mm</emphasis> es el minuto (00–59).
  86. </para>
  87. </listitem>
  88. <listitem>
  89. <para>
  90. <emphasis>SS</emphasis> es el segundo (00–59).
  91. </para>
  92. </listitem>
  93. <listitem>
  94. <para>
  95. <emphasis>O</emphasis> es la relación de la hora
  96. local a la hora universal (UT), identificado por
  97. uno de los caracteres +, -, o Z (véase más
  98. adelante). </para>
  99. </listitem>
  100. <listitem>
  101. <para>
  102. <emphasis>HH</emphasis> seguido de ' es el valor
  103. absoluto de la posición de la UT en horas
  104. (00-23). </para>
  105. </listitem>
  106. <listitem>
  107. <para>
  108. <emphasis>mm</emphasis> seguido de ' es el valor
  109. absoluto de la posición de la UT en minutos
  110. (00-59). </para>
  111. </listitem>
  112. </itemizedlist> El carácter apóstrofe (') después de HH mm
  113. es parte de la sintaxis. Todos los campos después del año
  114. son opcionales. (El prefijo D:, aunque también opcional, se
  115. recomienda fuertemente.) Los valores por defecto para MM y
  116. DD son 01, y todos los demás valores numéricos de los campos
  117. son cero por defecto. Un signo más (+) como el valor del
  118. campo O significa que la hora local es más tarde que la UT,
  119. un signo menos (-) que la hora local es anterior a la UT, y
  120. la letra Z que la hora local es igual a la UT. Si no se
  121. especifica la información UT, la relación del tiempo
  122. especificado para UT se considera desconocida. Ya sea que la
  123. zona horaria se conozca o no, el resto de la fecha debe
  124. estar especificada en la hora local. </para>
  125. <para>Por ejemplo, el 23 de diciembre de 1998, a las 7:52 PM,
  126. hora estándar del Pacífico de EE.UU., está representado por
  127. el string "D:199812231952-08'00'". </para>
  128. </listitem>
  129. <listitem>
  130. <para>
  131. <emphasis>ModDate</emphasis> - string, opcional, la fecha y
  132. la hora en que el documento fue modificado mas
  133. recientemente, de la misma forma que
  134. <emphasis>CreationDate</emphasis> . </para>
  135. </listitem>
  136. <listitem>
  137. <para>
  138. <emphasis>Trapped</emphasis> - booleano, opcional, indica si
  139. el documento ha sido modificado para incluir la captura de
  140. información. <itemizedlist>
  141. <listitem>
  142. <para>
  143. <emphasis><constant>TRUE</constant></emphasis> - El documento ha sido
  144. capturado; no se necesitan más capturas. </para>
  145. </listitem>
  146. <listitem>
  147. <para>
  148. <emphasis><constant>FALSE</constant></emphasis> - El documento aún no
  149. ha sido capturado; cualquier captura todavía
  150. debe ser hecha. </para>
  151. </listitem>
  152. <listitem>
  153. <para>
  154. <emphasis><constant>NULL</constant></emphasis> - O bien se desconoce
  155. si el documento ha sido capturado o que lo ha
  156. sido en parte pero no completamente capturado, y
  157. alguna captura adicional puede ser necesaria.
  158. </para>
  159. </listitem>
  160. </itemizedlist>
  161. </para>
  162. </listitem>
  163. </itemizedlist>
  164. </para>
  165. <para> Desde <acronym>PDF</acronym> v 1.6 los metadatos se pueden almacenar
  166. en el documento <acronym>XML</acronym> especial adjunto al
  167. <acronym>PDF</acronym> (XMP - <ulink
  168. url="http://www.adobe.com/products/xmp/">Extensible Metadata
  169. Platform</ulink> ). </para>
  170. <para> Este documento <acronym>XML</acronym> se pueden recuperar y adjuntar
  171. al <acronym>PDF</acronym> con los métodos
  172. <methodname>Zend_Pdf::getMetadata()</methodname> y
  173. <methodname>Zend_Pdf::setMetadata($metadata)</methodname> : <programlisting language="php"><![CDATA[
  174. $pdf = Zend_Pdf::load($pdfPath);
  175. $metadata = $pdf->getMetadata();
  176. $metadataDOM = new DOMDocument();
  177. $metadataDOM->loadXML($metadata);
  178. $xpath = new DOMXPath($metadataDOM);
  179. $pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')
  180. ->item(0)
  181. ->lookupNamespaceURI('pdf');
  182. $xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
  183. $titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')->item(0);
  184. $title = $titleNode->nodeValue;
  185. ...
  186. $titleNode->nodeValue = 'New title';
  187. $pdf->setMetadata($metadataDOM->saveXML());
  188. $pdf->save($pdfPath);
  189. ]]></programlisting>
  190. </para>
  191. <para>Las propiedades comunes del documento se duplican en la estructura de
  192. Info y el documento Metadata (si se presentan). Ahora es responsabilidad
  193. del usuario la aplicación para mantenerlos sincronizados.</para>
  194. </sect1>