<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 20115 -->
    <!-- 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><constant>TRUE</constant></emphasis> - El documento ha sido
                                capturado; no se necesitan más capturas. </para>
                        </listitem>
                        <listitem>
                            <para>
                                <emphasis><constant>FALSE</constant></emphasis> - El documento aún no
                                ha sido capturado; cualquier captura todavía
                                debe ser hecha. </para>
                        </listitem>
                        <listitem>
                            <para>
                                <emphasis><constant>NULL</constant></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>
