Próbuję napisać metadanych do pliku PDF za pomocą następującego kodu Pythona:Zapisywanie metadanych do pliku PDF za pomocą 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"
wydaje się działać prawidłowo (brak błędów do pocieszony), jednak kiedy zbadać metadane pliku to następująco:
PdfID0:
242b7e252f1d3fdd89b35751b3f72d3
PdfID1:
242b7e252f1d3fdd89b35751b3f72d3
NumberOfPages: 4
i oryginalny plik miał następujące metadane:
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
Problem polega więc na tym, że nie dołączają one metadanych i czyści poprzednią strukturę metadanych. Co muszę zrobić, aby to zadziałało? Moim celem jest dołączenie metadanych, które mogą być przywoływane przez systemy zarządzania.
Dzięki za odpowiedź, Tamás. Tylko jedno pytanie, gdzie mogę znaleźć inne atrybuty? Próbuję kodować w sztywny sposób metadane z pliku .bib z plikami PDF i nie wiem, czy istnieją ograniczenia dotyczące tego, co mogę przechowywać. – djq
Poszukaj ich w dokumentacji PDFKit na stronie głównej Apple; lista stałych, których szukasz, jest tutaj (przepraszam za długi link): http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/QuartzFramework/Classes/PDFDocument_Class/Reference/Reference.html % 23 // apple_ref/doc/uid/TP40003873. Poszukaj sekcji Constants i "Klucze Atrybutów Dokumentu" wewnątrz niej. –
Byłem trochę wolny wypróbowując ten kod - ale nie mogę go uruchomić poza linią. Czy jest jakaś wersja specyficzna dla ? –
djq