| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- <sect1 id="zend.pdf.info">
- <!-- @todo review and revise upon completion of refactoring -->
- <title>Informação do Documento e Metadados.</title>
- <para>
- Um documento PDF deve incluir informações gerais como o título do documento, autor, e datas de criação e modificação.
- </para>
- <para>
- Historicamente essas informações são armazenadas com o uso de estruturas especiais. Esta estrutura está
- disponível para leitura e escrita como um array associativo usando a propriedade pública <code>properties</code>
- dos obejtos Zend_Pdf:
- <programlisting role="php"><![CDATA[<?php
- $pdf = Zend_Pdf::load($pdfPath);
- echo $pdf->properties['Title'] . "\n";
- echo $pdf->properties['Author'] . "\n";
- $pdf->properties['Title'] = 'New Title.';
- $pdf->save($pdfPath);
- ]]>
- </programlisting>
- </para>
- <para>
- As seguintes chaves são definidas pelo padrão PDF v1.4 (Acrobat 5):
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Title</emphasis> - texto, opcional, o título do documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Author</emphasis> - texto, opcional, o nome da pessoa que criou o documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Subject</emphasis> - texto, opcional, o assunto do documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Keywords</emphasis> - texto, opcional, palavras-chave associadas ao documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Creator</emphasis> - texto, opcional, se o documento foi convertido para o formato PDF a
- partir de outro formato, o nome da aplicação (por exemplo, Adobe FrameMaker®) que criou o documento original.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Producer</emphasis> - texto, opcional, se o documento foi convertido para o formato PDF a
- partir de outro formato, o nome da aplicação (por exemplo, Adobe Distiller®) que converteu o converteu.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CreationDate</emphasis> - texto, opcional, a data e a hora na qual o documento foi criado, na seguinte forma:
- "D:YYYYMMDDHHmmSSOHH'mm'", onde:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>YYYY</emphasis> é o ano.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>MM</emphasis> é o mês.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>DD</emphasis> é o dia (01–31).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>HH</emphasis> é a hora (00–23).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mm</emphasis> é o minuto(00–59).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>SS</emphasis> é o segundo (00–59).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>O</emphasis> é a relação da hora local com a hora Universal(UT),
- denotada pelos caracteres +, −, ou Z (veja abaixo).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>HH</emphasis> seguido por ' é o valor absoluto da diferença da hora Universal
- em horas (00–23).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mm</emphasis> seguido por ' é o valor absoluto da diferença da hora Universal
- em minutos (00–59).
- </para>
- </listitem>
- </itemizedlist>
- O apóstrofo (') depois do HH e do mm é parte da sintaxe. Todos os campos depois do ano
- são opcionais . (O préfixo D:, embora também seja opcional, é fortemente recomendado.)
- Os valores padrões para MM e DD são, para ambos, 01; todos os outros campos numéricos
- têm valor padrão zero. Um sinal positivo(+) no valor de um campo significa que a hora local
- é mais tarde que a hora Universal, e um sinal negativo(−) indica que é mais cedo. A letra Z
- indica que a hora é igual a hora Universal. Se nenhuma informação for específicada, a relação
- da hora com a hora Universal é considerada desconhecida. Sendo ou não conhecido o fuso
- horário, o resto da data deve ser especificado em "local time".
- </para>
- <para>
- Por exemplo, 23 de Dezembro de 1998, 7:52 da noite, U.S. Pacific Standard Time, é
- representado pela string "D:199812231952−08'00'".
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ModDate</emphasis> - texto, opcional, a data e a hora da atualização mais recente no
- documento, na mesma forma de <emphasis>CreationDate</emphasis>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Trapped</emphasis> - boolean, opcional, indica se o documento foi modificado para a
- inclusão de informações "trapped".
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>true</emphasis> - The document has been fully trapped; no further trapping is needed.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>false</emphasis> - The document has not yet been trapped; any desired trapping must still be done.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>null</emphasis> - Either it is unknown whether the document has been
- trapped or it has been partly but not yet fully trapped; some
- additional trapping may still be needed.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Desde a versão de PDF v 1.6 os metadados podem ser armazenados no documento XML especial anexado
- ao documento PDF
- (XMP - <ulink url="http://www.adobe.com/products/xmp/">Extensible Metadata Platform</ulink>).
- </para>
- <para>
- Este documento XML pode ser recuperado e anexado ao PDF com os métodos <code>Zend_Pdf::getMetadata()</code> e
- <code>Zend_Pdf::setMetadata($metadata)</code>:
- <programlisting role="php"><![CDATA[<?php
- $pdf = Zend_Pdf::load($pdfPath);
- $metadata = $pdf->getMetadata();
- $metadataDOM = new DOMDocument();
- $metadataDOM->loadXML($metadata);
- $xpath = new DOMXPath($metadataDOM);
- $pdfPreffixNamespaceURI = $xpath->query('/rdf:RDF/rdf:Description')->item(0)->lookupNamespaceURI('pdf');
- $xpath->registerNamespace('pdf', $pdfPreffixNamespaceURI);
- $titleNode = $xpath->query('/rdf:RDF/rdf:Description/pdf:Title')->item(0);
- $title = $titleNode->nodeValue;
- ...
- $titleNode->nodeValue = 'New title';
- $pdf->setMetadata($metadataDOM->saveXML());
- $pdf->save($pdfPath);
- ]]>
- </programlisting>
- </para>
- <para>
- Propriedades comuns são duplicadas na estrutura Info e nos Metadados do documento (se presente).
- Agora é responsabilidade da aplicação do usuário mantê-los sincronizados.
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|