| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17227 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.pdf.info">
- <!-- @todo review and revise upon completion of refactoring -->
- <title>Información del Documento y Metadatos</title>
- <para>
- Un documento
- <acronym>PDF</acronym>
- puede incluir información general como el título del documento, autor,
- la creación y
- modificación de fechas.
- </para>
- <para>
- Históricamente, esta información se almacena usando una estructura especial de
- Información.
- Esta estructura está disponible para lectura y la escritura como una array
- asociativo
- utilizando propiedades públicas
- <methodname>properties</methodname>
- de objetos
- <classname>Zend_Pdf</classname>
- :
- <programlisting language="php"><![CDATA[
- $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>
- Las siguientes claves están definidas por v1.4
- <acronym>PDF</acronym>
- (Acrobat 5) estándar:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Title</emphasis>
- - string, opcional, el título del documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Author</emphasis>
- - string, opcional, el nombre de la persona que creó
- el documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Subject</emphasis>
- - string, opcional, el tema del documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Keywords</emphasis>
- - string, opcional, las palabras clave asociadas
- con el documento.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Creator</emphasis>
- - string, opcional, si el documento se convirtió
- desde otro formato a
- <acronym>PDF</acronym>
- , el nombre de la aplicación (por ejemplo, Adobe
- FrameMaker ®) que creó el
- documento original a partir del cual se convirtió.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Producer</emphasis>
- - string, opcional, si el documento se convirtió
- desde otro formato a
- <acronym>PDF</acronym>
- , el nombre de la aplicación (por ejemplo, Acrobat
- Distiller), que lo convirtió a
- <acronym>PDF</acronym>
- .
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CreationDate</emphasis>
- - string, opcional, la fecha y la hora en que
- el documento fue creado, en la
- forma siguiente: "D:YYYYMMDDHHmmSSOHH'mm'", en la
- que:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>YYYY</emphasis>
- es el año.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>MM</emphasis>
- es el mes.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>DD</emphasis>
- es el día (01–31).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>HH</emphasis>
- es la hora (00–23).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mm</emphasis>
- es el minuto (00–59).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>SS</emphasis>
- es el segundo (00–59).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>O</emphasis>
- es la relación de la hora local a la hora
- universal (UT),
- identificado por uno de los caracteres +, -, o Z
- (véase más
- adelante).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>HH</emphasis>
- seguido de ' es el valor absoluto de la
- posición de la UT en horas
- (00-23).
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>mm</emphasis>
- seguido de ' es el valor absoluto de la
- posición de la UT en minutos
- (00-59).
- </para>
- </listitem>
- </itemizedlist>
- El carácter apóstrofe (') después de HH mm es parte de la
- sintaxis. Todos los
- campos después del año son opcionales. (El prefijo D:,
- aunque también opcional,
- se recomienda fuertemente.) Los valores por defecto
- para MM y DD son 01, y todos
- los demás valores numéricos de los campos son cero
- por defecto. Un signo más (+)
- como el valor del campo O significa que la hora
- local es más tarde que la UT, un
- signo menos (-) que la hora local es anterior a
- la UT, y la letra Z que la hora
- local es igual a la UT. Si no se especifica la
- información UT, la relación del
- tiempo especificado para UT se considera
- desconocida. Ya sea que la zona horaria
- se conozca o no, el resto de la fecha
- debe estar especificada en la hora local.
- </para>
- <para>Por ejemplo, el 23 de diciembre de 1998, a las 7:52 PM, hora estándar del
- Pacífico de EE.UU., está representado por el string "D:199812231952-08'00'".
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ModDate</emphasis>
- - string, opcional, la fecha y la hora en que el
- documento fue modificado mas
- recientemente, de la misma forma que
- <emphasis>CreationDate</emphasis>
- .
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Trapped</emphasis>
- - booleano, opcional, indica si el documento ha
- sido modificado para incluir la
- captura de información.
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>true</emphasis>
- - El documento ha sido capturado; no se
- necesitan más capturas.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>false</emphasis>
- - El documento aún no ha sido capturado;
- cualquier captura todavía
- debe ser hecha.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>null</emphasis>
- - O bien se desconoce si el documento ha
- sido capturado o que lo ha
- sido en parte pero no completamente
- capturado, y alguna captura
- adicional puede ser necesaria.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Desde
- <acronym>PDF</acronym>
- v 1.6 los metadatos se pueden almacenar en el documento
- <acronym>XML</acronym>
- especial adjunto al
- <acronym>PDF</acronym>
- (XMP -
- <ulink url="http://www.adobe.com/products/xmp/">Extensible
- Metadata Platform</ulink>
- ).
- </para>
- <para>
- Este documento
- <acronym>XML</acronym>
- se pueden recuperar y adjuntar al
- <acronym>PDF</acronym>
- con los
- métodos
- <methodname>Zend_Pdf::getMetadata()</methodname>
- y
- <methodname>Zend_Pdf::setMetadata($metadata)</methodname>
- :
- <programlisting language="php"><![CDATA[
- $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>Las propiedades comunes del documento se duplican en la estructura de Info y el documento
- Metadata (si se presentan). Ahora es responsabilidad del usuario la aplicación para
- mantenerlos sincronizados.</para>
- </sect1>
|