Change metadata of pdf file with pypdf2

2019-06-04 13:02发布

I want to add a metadata key-value pair to the metadata of a pdf file.

I found a several years old answer, but I think this is way to complicated. I guess there is an easier way today: https://stackoverflow.com/a/3257340/633961

I am not married with pypdf2, if there is an easier way, then I go this way?

2条回答
干净又极端
2楼-- · 2019-06-04 13:15

You can do that using pdfrw

pip install pdfrw

Then run

from pdfrw import PdfReader, PdfWriter   
trailer = PdfReader("myfile.pdf")    
trailer.Info.WhoAmI = "Tarun Lalwani"    
PdfWriter("edited.pdf", trailer=trailer).write()

And then check the PDF Custom Properties

EditedProperties

查看更多
Bombasti
3楼-- · 2019-06-04 13:16

I was surprised to see there is no code sample for PyPDF2 when the questions is explicitly asking for PyPDF2, so here it is:

from PyPDF2 import PdfFileReader, PdfFileWriter

fin = open('source.pdf', 'rb')
reader = PdfFileReader(fin)
writer = PdfFileWriter()

writer.appendPagesFromReader(reader)
metadata = reader.getDocumentInfo()
writer.addMetadata(metadata)

# Write your custom metadata here:
writer.addMetadata({
    '/Some': 'Example'
})

fout = open('result.pdf', 'wb')
writer.write(fout)

fin.close()
fout.close()
查看更多
登录 后发表回答