【问题标题】:is there a way to set the title and author metadata properties of a pdf in python?有没有办法在python中设置pdf的标题和作者元数据属性?
【发布时间】:2021-08-30 21:48:36
【问题描述】:

我需要从 word 文档创建大量符合 ADA 标准的 pdf。我使用了来自 comtypes.client 的代码 sn-p,它可以很好地创建 pdf,但是当我在 PDF 上运行可访问性检查器时,它给出了 Title FAIL,并且它的作者名字是我的名字而不是我的组织的名字.有没有办法在制作 PDF 时或在完成后设置标题和作者?我更喜欢使用 python,但如果还有其他更简单的方法,我就是游戏。

我看过 PyPDF2,但它似乎只设置“自定义元数据”,而不是实际更改或设置标题/作者属性。 (加上我从网上尝试的代码 sn-p 一直返回错误 - 我没有粘贴代码,因为我认为它无论如何都不能满足我的需要..)

我不知道 pdftk 之类的东西是否能满足我的需求...我无论如何都找不到免费版本的功能,我看到了这个示例 https://sejh.wordpress.com/2014/11/26/changing-pdf-titles-with-pdftk/,但充其量它看起来可能适用于标题但不是作者,我不确定是否有一种简单的方法可以为许多 pdf 运行脚本...

我还研究了 EXIF,它似乎只读取 pdf,但指向 XMP 作为写入元数据的一种方式......只有在我从一个广泛的 XMP 兔子洞中重新浮出水面后,我还是不知道它是否有用与否。

所以我想我会在这里尝试。看看是否有人有一个好的、简单的 python 解决方案,或者如果没有,可以指出一个值得去的兔子洞,以及如何导航所述兔子洞以找到答案的任何提示。

非常感谢!

【问题讨论】:

  • 附带说明,通常是文档标题和在应用程序标题栏中显示标题的标志设置是 ADA 所需的。不是作者
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python pdf metadata title author


【解决方案1】:

通过使用 Python 的 docx 中的 core_properties 属性,我能够在 Word 文档阶段解决我的问题(我在最初发帖时不知道这个属性)。

import docx
doc = docx.Document()
cp = doc.core_properties
cp.author = 'author name'                
cp.title = 'title content'
cp.subject = 'subject content'

当我随后使用 Python 的 comtypes 将 Word doc 转换为 pdf 时,元数据成功传输。

【讨论】:

    【解决方案2】:

    您作为作者的一般原因是“机器用户是作者,即使那是您的秘书”,所以最简单的方法是在“组织”登录中运行 PDF 应用程序,但正如您指出的,pdftk 允许您进行更改,所以坚持下去。使用 Python 在 NewInfo.txt 中编写必要的更改,然后运行 ​​pdftk。

    InfoBegin
    InfoKey: Creator
    InfoValue: Stack OverFlow
    InfoBegin
    InfoKey: Producer
    InfoValue: Status Quo
    InfoBegin
    InfoKey: Author
    InfoValue: K Steinmann
    InfoBegin
    InfoKey: Title
    InfoValue: Whatever You Want, Whatever You Need, dah dah dah...
    

    pdftk input.pdf update_info NewInfo.txt output output.pdf

    【讨论】:

    • 谢谢 - 我想我可能在 Word doc 阶段使用 Python 的 docx 找到了一个选项 - 我没有意识到他们有一个模块来设置文档属性。到目前为止,这些属性似乎在创建后就会转移到 pdf 中。不过感谢您的建议-将来可能对我有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 2021-06-09
    • 2016-07-13
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多