Estoy intentando escribir metadatos en un archivo PDF utilizando el siguiente código Python:Escribir metadatos en un archivo PDF utilizando PyObjC
from Foundation import *
from Quartz import *
url = NSURL.fileURLWithPath_("test.pdf")
pdfdoc = PDFDocument.alloc().initWithURL_(url)
assert pdfdoc, "failed to create document"
print "reading pdf file"
attrs = {}
attrs[PDFDocumentTitleAttribute] = "THIS IS THE TITLE"
attrs[PDFDocumentAuthorAttribute] = "A. Author and B. Author"
PDFDocumentTitleAttribute = "test"
pdfdoc.setDocumentAttributes_(attrs)
pdfdoc.writeToFile_("mynewfile.pdf")
print "pdf made"
Esto parece funcionar bien (no hay errores en el consuelo), sin embargo cuando examinar los metadatos del archivo es la siguiente:
PdfID0:
242b7e252f1d3fdd89b35751b3f72d3
PdfID1:
242b7e252f1d3fdd89b35751b3f72d3
NumberOfPages: 4
y el archivo original tenía los siguientes metadatos:
InfoKey: Creator
InfoValue: PScript5.dll Version 5.2.2
InfoKey: Title
InfoValue: Microsoft Word - PROGRESS ON THE GABION HOUSE Compressed.doc
InfoKey: Producer
InfoValue: GPL Ghostscript 8.15
InfoKey: Author
InfoValue: PWK
InfoKey: ModDate
InfoValue: D:20101021193627-05'00'
InfoKey: CreationDate
InfoValue: D:20101008152350Z
PdfID0: d5fd6d3960122ba72117db6c4d46cefa
PdfID1: 24bade63285c641b11a8248ada9f19
NumberOfPages: 4
Entonces, los problemas son que no anexa los metadatos y está borrando la estructura de metadatos anterior. ¿Qué debo hacer para que esto funcione? Mi objetivo es agregar metadatos que los sistemas de administración de referencia puedan importar.
Gracias por la respuesta, Tamás. Solo una pregunta, ¿dónde puedo encontrar cuáles son los otros atributos? Estoy tratando de codificar los metadatos de un archivo .bib con los PDF y no sé si hay límites en lo que puedo almacenar. – djq
Solo búsquelos en la documentación de PDFKit en la página principal de Apple; la lista de constantes que está buscando está aquí (lo siento por el enlace largo): http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/QuartzFramework/Classes/PDFDocument_Class/Reference/Reference.html % 23 // apple_ref/doc/uid/TP40003873. Busque la sección Constantes y las "Teclas de atributos del documento" dentro de ella. –
He estado un poco lento probando este código, pero no puedo hacer que funcione más allá de la línea. ¿Hay alguna versión específica sobre ? –
djq