Información del Documento y Metadatos Un documento PDF puede incluir información general como el título del documento, autor, la creación y modificación de fechas. 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 properties de objetos Zend_Pdf : properties['Title'] . "\n"; echo $pdf->properties['Author'] . "\n"; $pdf->properties['Title'] = 'New Title.'; $pdf->save($pdfPath); ]]> Las siguientes claves están definidas por v1.4 PDF (Acrobat 5) estándar: Title - string, opcional, el título del documento. Author - string, opcional, el nombre de la persona que creó el documento. Subject - string, opcional, el tema del documento. Keywords - string, opcional, las palabras clave asociadas con el documento. Creator - string, opcional, si el documento se convirtió desde otro formato a PDF , el nombre de la aplicación (por ejemplo, Adobe FrameMaker ®) que creó el documento original a partir del cual se convirtió. Producer - string, opcional, si el documento se convirtió desde otro formato a PDF , el nombre de la aplicación (por ejemplo, Acrobat Distiller), que lo convirtió a PDF . CreationDate - string, opcional, la fecha y la hora en que el documento fue creado, en la forma siguiente: "D:YYYYMMDDHHmmSSOHH'mm'", en la que: YYYY es el año. MM es el mes. DD es el día (01–31). HH es la hora (00–23). mm es el minuto (00–59). SS es el segundo (00–59). O 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). HH seguido de ' es el valor absoluto de la posición de la UT en horas (00-23). mm seguido de ' es el valor absoluto de la posición de la UT en minutos (00-59). 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. 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'". ModDate - string, opcional, la fecha y la hora en que el documento fue modificado mas recientemente, de la misma forma que CreationDate . Trapped - booleano, opcional, indica si el documento ha sido modificado para incluir la captura de información. TRUE - El documento ha sido capturado; no se necesitan más capturas. FALSE - El documento aún no ha sido capturado; cualquier captura todavía debe ser hecha. NULL - 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. Desde PDF v 1.6 los metadatos se pueden almacenar en el documento XML especial adjunto al PDF (XMP - Extensible Metadata Platform ). Este documento XML se pueden recuperar y adjuntar al PDF con los métodos Zend_Pdf::getMetadata() y Zend_Pdf::setMetadata($metadata) : 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); ]]> 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.