È possibile manipolare il titolo con pyPDF (o quasi). Mi sono imbattuto in questo post su lista ReportLab utenti:
http://two.pairlist.net/pipermail/reportlab-users/2009-November/009033.html
È anche possibile utilizzare pypdf. http://pybrary.net/pyPdf/
Questo non ti consente di modificare i metadati per sé, ma vi permetterà di leggere uno o più file pdf (s) e li sputare indietro fuori, possibilmente con nuovi metadati.
Ecco il codice rilevante:
from pyPdf import PdfFileWriter, PdfFileReader
from pyPdf.generic import NameObject, createStringObject
OUTPUT = 'output.pdf'
INPUTS = ['test1.pdf', 'test2.pdf', 'test3.pdf']
# There is no interface through pyPDF with which to set this other then getting
# your hands dirty like so:
infoDict = output._info.getObject()
infoDict.update({
NameObject('/Title'): createStringObject(u'title'),
NameObject('/Author'): createStringObject(u'author'),
NameObject('/Subject'): createStringObject(u'subject'),
NameObject('/Creator'): createStringObject(u'a script')
})
inputs = [PdfFileReader(i) for i in INPUTS]
for input in inputs:
for page in range(input.getNumPages()):
output.addPage(input.getPage(page))
outputStream = file(OUTPUT, 'wb')
output.write(outputStream)
outputStream.close()
fonte
2010-07-15 15:51:14
Quando si costruisce un PdfFileReader, è necessario passare un oggetto simile a file, non è una stringa/filename (almeno con pyPdf 1.13) –
[PyPDF2] (http : //mstamy2.github.io/PyPDF2/) (che sembra aver sostituito pyPDF) ha un metodo nativo che fa questo per voi: 'output.addMetadata ({'/ Title': 'title'})' – gellej