Zend_Pdf-Properties.xml 9.0 KB

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