Zend_Pdf-Properties.xml 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <sect1 id="zend.pdf.info">
  2. <!-- @todo review and revise upon completion of refactoring -->
  3. <title>Informação do Documento e Metadados.</title>
  4. <para>
  5. Um documento PDF deve incluir informações gerais como o título do documento, autor, e datas de criação e modificação.
  6. </para>
  7. <para>
  8. Historicamente essas informações são armazenadas com o uso de estruturas especiais. Esta estrutura está
  9. disponível para leitura e escrita como um array associativo usando a propriedade pública <code>properties</code>
  10. dos obejtos Zend_Pdf:
  11. <programlisting role="php"><![CDATA[<?php
  12. $pdf = Zend_Pdf::load($pdfPath);
  13. echo $pdf->properties['Title'] . "\n";
  14. echo $pdf->properties['Author'] . "\n";
  15. $pdf->properties['Title'] = 'New Title.';
  16. $pdf->save($pdfPath);
  17. ]]>
  18. </programlisting>
  19. </para>
  20. <para>
  21. As seguintes chaves são definidas pelo padrão PDF v1.4 (Acrobat 5):
  22. <itemizedlist>
  23. <listitem>
  24. <para>
  25. <emphasis>Title</emphasis> - texto, opcional, o título do documento.
  26. </para>
  27. </listitem>
  28. <listitem>
  29. <para>
  30. <emphasis>Author</emphasis> - texto, opcional, o nome da pessoa que criou o documento.
  31. </para>
  32. </listitem>
  33. <listitem>
  34. <para>
  35. <emphasis>Subject</emphasis> - texto, opcional, o assunto do documento.
  36. </para>
  37. </listitem>
  38. <listitem>
  39. <para>
  40. <emphasis>Keywords</emphasis> - texto, opcional, palavras-chave associadas ao documento.
  41. </para>
  42. </listitem>
  43. <listitem>
  44. <para>
  45. <emphasis>Creator</emphasis> - texto, opcional, se o documento foi convertido para o formato PDF a
  46. partir de outro formato, o nome da aplicação (por exemplo, Adobe FrameMaker®) que criou o documento original.
  47. </para>
  48. </listitem>
  49. <listitem>
  50. <para>
  51. <emphasis>Producer</emphasis> - texto, opcional, se o documento foi convertido para o formato PDF a
  52. partir de outro formato, o nome da aplicação (por exemplo, Adobe Distiller®) que converteu o converteu.
  53. </para>
  54. </listitem>
  55. <listitem>
  56. <para>
  57. <emphasis>CreationDate</emphasis> - texto, opcional, a data e a hora na qual o documento foi criado, na seguinte forma:
  58. "D:YYYYMMDDHHmmSSOHH'mm'", onde:
  59. <itemizedlist>
  60. <listitem>
  61. <para>
  62. <emphasis>YYYY</emphasis> é o ano.
  63. </para>
  64. </listitem>
  65. <listitem>
  66. <para>
  67. <emphasis>MM</emphasis> é o mês.
  68. </para>
  69. </listitem>
  70. <listitem>
  71. <para>
  72. <emphasis>DD</emphasis> é o dia (01–31).
  73. </para>
  74. </listitem>
  75. <listitem>
  76. <para>
  77. <emphasis>HH</emphasis> é a hora (00–23).
  78. </para>
  79. </listitem>
  80. <listitem>
  81. <para>
  82. <emphasis>mm</emphasis> é o minuto(00–59).
  83. </para>
  84. </listitem>
  85. <listitem>
  86. <para>
  87. <emphasis>SS</emphasis> é o segundo (00–59).
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. <emphasis>O</emphasis> é a relação da hora local com a hora Universal(UT),
  93. denotada pelos caracteres +, −, ou Z (veja abaixo).
  94. </para>
  95. </listitem>
  96. <listitem>
  97. <para>
  98. <emphasis>HH</emphasis> seguido por ' é o valor absoluto da diferença da hora Universal
  99. em horas (00–23).
  100. </para>
  101. </listitem>
  102. <listitem>
  103. <para>
  104. <emphasis>mm</emphasis> seguido por ' é o valor absoluto da diferença da hora Universal
  105. em minutos (00–59).
  106. </para>
  107. </listitem>
  108. </itemizedlist>
  109. O apóstrofo (') depois do HH e do mm é parte da sintaxe. Todos os campos depois do ano
  110. são opcionais . (O préfixo D:, embora também seja opcional, é fortemente recomendado.)
  111. Os valores padrões para MM e DD são, para ambos, 01; todos os outros campos numéricos
  112. têm valor padrão zero. Um sinal positivo(+) no valor de um campo significa que a hora local
  113. é mais tarde que a hora Universal, e um sinal negativo(−) indica que é mais cedo. A letra Z
  114. indica que a hora é igual a hora Universal. Se nenhuma informação for específicada, a relação
  115. da hora com a hora Universal é considerada desconhecida. Sendo ou não conhecido o fuso
  116. horário, o resto da data deve ser especificado em "local time".
  117. </para>
  118. <para>
  119. Por exemplo, 23 de Dezembro de 1998, 7:52 da noite, U.S. Pacific Standard Time, é
  120. representado pela string "D:199812231952−08'00'".
  121. </para>
  122. </listitem>
  123. <listitem>
  124. <para>
  125. <emphasis>ModDate</emphasis> - texto, opcional, a data e a hora da atualização mais recente no
  126. documento, na mesma forma de <emphasis>CreationDate</emphasis>.
  127. </para>
  128. </listitem>
  129. <listitem>
  130. <para>
  131. <emphasis>Trapped</emphasis> - boolean, opcional, indica se o documento foi modificado para a
  132. inclusão de informações "trapped".
  133. <itemizedlist>
  134. <listitem>
  135. <para>
  136. <emphasis>true</emphasis> - The document has been fully trapped; no further trapping is needed.
  137. </para>
  138. </listitem>
  139. <listitem>
  140. <para>
  141. <emphasis>false</emphasis> - The document has not yet been trapped; any desired trapping must still be done.
  142. </para>
  143. </listitem>
  144. <listitem>
  145. <para>
  146. <emphasis>null</emphasis> - Either it is unknown whether the document has been
  147. trapped or it has been partly but not yet fully trapped; some
  148. additional trapping may still be needed.
  149. </para>
  150. </listitem>
  151. </itemizedlist>
  152. </para>
  153. </listitem>
  154. </itemizedlist>
  155. </para>
  156. <para>
  157. Desde a versão de PDF v 1.6 os metadados podem ser armazenados no documento XML especial anexado
  158. ao documento PDF
  159. (XMP - <ulink url="http://www.adobe.com/products/xmp/">Extensible Metadata Platform</ulink>).
  160. </para>
  161. <para>
  162. Este documento XML pode ser recuperado e anexado ao PDF com os métodos <code>Zend_Pdf::getMetadata()</code> e
  163. <code>Zend_Pdf::setMetadata($metadata)</code>:
  164. <programlisting role="php"><![CDATA[<?php
  165. $pdf = Zend_Pdf::load($pdfPath);
  166. $metadata = $pdf->getMetadata();
  167. $metadataDOM = new DOMDocument();
  168. $metadataDOM->loadXML($metadata);
  169. $xpath = new DOMXPath($metadataDOM);
  170. $pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')->item(0)->lookupNamespaceURI('pdf');
  171. $xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
  172. $titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')->item(0);
  173. $title = $titleNode->nodeValue;
  174. ...
  175. $titleNode->nodeValue = 'New title';
  176. $pdf->setMetadata($metadataDOM->saveXML());
  177. $pdf->save($pdfPath);
  178. ]]>
  179. </programlisting>
  180. </para>
  181. <para>
  182. Propriedades comuns são duplicadas na estrutura Info e nos Metadados do documento (se presente).
  183. Agora é responsabilidade da aplicação do usuário mantê-los sincronizados.
  184. </para>
  185. </sect1>
  186. <!--
  187. vim:se ts=4 sw=4 et:
  188. -->