我嘗試使用下面的Python代碼將元數據寫入到PDF文件的元數據寫入到PDF:使用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"
這似乎很好地工作(沒有錯誤的安慰),但是當我檢查文件的元數據,其計算方法如下:
PdfID0:
242b7e252f1d3fdd89b35751b3f72d3
PdfID1:
242b7e252f1d3fdd89b35751b3f72d3
NumberOfPages: 4
和原始文件有以下元數據:
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
所以問題是,它沒有附加元數據,並且它正在清除以前的元數據結構。我需要做些什麼來實現這個目標?我的目標是追加引用管理系統可以導入的元數據。
感謝您的回答,Tamás。只有一個問題,我在哪裏可以找到其他屬性?我試圖使用PDF來從.bib文件中對元數據進行硬編碼,但我不知道是否對我可以存儲的內容有任何限制。 – djq 2010-11-24 21:23:52
只需在Apple的主頁上查看PDFKit的文檔,你正在尋找的常量列表在這裏(對於長鏈接):http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/QuartzFramework/Classes/PDFDocument_Class/Reference/Reference.html %23 // apple_ref/doc/uid/TP40003873。查找常量部分和其中的「文檔屬性鍵」。 – 2010-11-24 23:53:21
我一直在嘗試這段代碼有點慢 - 但我無法讓它超出行。是否有關於的特定版本? –
djq
2010-12-22 01:11:49