我正在按照说明 in this article 进行操作用于将信息写入 PDF 文档中的注释。
上述文章中的脚本确实有效。但是,执行脚本并打开输出文件后,这些字段将保持不可见。单击注释时,会显示从脚本添加的文本。但随后当单击文档中的其他位置时,脚本中的文本就会消失。
是否需要触发某种标志,以通知 PDF 阅读器字段已填写?
<小时/>编辑:
文章中给出的脚本可能并不正确。
阅读第一个注释时of the unedited PDF ,我得到以下信息:
{'/T': '(business_name_1)', '/AA': {'/F': (113, 0)}, '/MK': {}, '/F': '4', '/Rect': ['77.433', '639.425', '538.174', '663.305'], '/Type': '/Annot', '/FT': '/Tx', '/AP': {'/N': (12, 0)}, '/DA': '(/Helv 0 Tf 1 1 1 rg)', '/Subtype': '/Widget', '/TU': '([Business Name])', '/Q': '1', '/P': (11, 0)}
当使用 PDF 阅读器手动填写字段并保存,然后读取该 PDF 文件时,'/V':
属性会添加到之前的代码中,即第一个注释是下面的代码:
{'/V': '(Bostata)', '/T': '(business_name_1)', '/AA': {'/F': (113, 0)}, '/MK': {}, '/F': '4', '/Rect': ['77.433', '639.425', '538.174', '663.305'], '/Type': '/Annot', '/FT': '/Tx', '/AP': {'/N': (12, 0)}, '/DA': '(/Helv 0 Tf 1 1 1 rg)', '/Subtype': '/Widget', '/TU': '([Business Name])', '/Q': '1', '/P': (11, 0)}
但是,在脚本将值添加到注释中之后,还会添加一大堆数据(10k+ 个字符,所以我不会将其粘贴到此处)。
有人可以指出给定脚本的错误 in this article
<小时/>编辑2:
Here I found a partial answer.
将代码更改为:
annotation.update( pdfrw.PdfDict(AP=data_dict[key], V=data_dict[key]) )
当我在谷歌浏览器中使用 Adobe reader 打开 pdf 时,它工作正常。如果我使用 PDF-XChange 打开该文件,它就可以正常工作。
但是,当我在 Windows 10 计算机上安装的 Adobe acrobate 中打开 PDF 文件时,我遇到了同样的问题,即该字段为空。
最佳答案
您需要将/NeedAppearances 标记设置为 True。
看看这个 - https://github.com/pmaupin/pdfrw/issues/84#issuecomment-463493521
关于Python 库 "PDFrw"写入的注释在单击字段之前保持不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59730098/