【问题标题】:add custom metadata to pdf using python使用python将自定义元数据添加到pdf
【发布时间】:2019-04-26 10:48:22
【问题描述】:

我想将自定义元数据添加到 pdf 文件。这可以通过 pypdf2 或 pdrw 库来实现。我已经推荐了Change metadata of pdf file with pypdf2 当属性的两个词之间没有空格时,解决方案工作正常。

在我的情况下,我的元数据就像

meta = {'Page description' : 'description',
        'create time' : '123455' }

当我尝试将上述元数据添加为:

reader = PdfFileReader(filename)
writer = PdfFileWriter()
writer.appendPagesFromReader(reader)
writer.addMetadata(meta)
with open(filename, 'wb') as fout:
    writer.write(fout)

当我们尝试查看pdf文档属性中的自定义属性时,什么都没有显示。

如果属性没有空格,上述解决方案可以正常工作

【问题讨论】:

    标签: python pypdf2 pdfrw


    【解决方案1】:

    我不知道 pypdfw,但是对于 pdfrw,你应该使用 PdfName('Page description') 作为你的字典键。这将正确编码空间。

    免责声明:我是 pdfrw 的主要作者。

    【讨论】:

    • 我尝试了这个解决方案,但没有成功.. 只是为了确认一下,这是我的字典现在的样子:``` meta = {'PdfName(Page description)': 'Description', 'PdfName (创建时间)': '12345'} ```
    • PdfName 不应在引号内。它是 pdfrw 中的一个函数。此外,您应该考虑使用 PdfDict 而不是真正的 dict。当您使用映射到 PDF 原语的原语时,pdfrw 会更好地工作。
    • 以下代码对我有用:trailer = PdfReader(filename) for k,v in dct.items(): trailer.Info[pdfrw.objects.pdfname.PdfName(k)] = v PdfWriter (filename, trailer=trailer).write() 这里 dct = dictionary object @Patrick Maupin : 也会尝试使用 PdfDict。
    • 当我用 PdfName 创建字典时,我收到了这个错误:Expected PDF /name object (line=14, col=14, token='00:00:00')。你能帮忙吗
    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多