Python 库 "PDFrw"写入的注释在单击字段之前保持不可见

标签 python pdf

我正在按照说明 in this article 进行操作用于将信息写入 PDF 文档中的注释。

上述文章中的脚本确实有效。但是,执行脚本并打开输出文件后,这些字段将保持不可见。单击注释时,会显示从脚本添加的文本。但随后当单击文档中的其他位置时,脚本中的文本就会消失。

是否需要触发某种标志,以通知 PDF 阅读器字段已填写?

An example of the output of the current script

<小时/>

编辑:

文章中给出的脚本可能并不正确。

阅读第一个注释时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]) )

当我在谷歌浏览器中使用 Adob​​e reader 打开 pdf 时,它工作正常。如果我使用 PDF-XChange 打开该文件,它就可以正常工作。

但是,当我在 Windows 10 计算机上安装的 Adob​​e acrobate 中打开 PDF 文件时,我遇到了同样的问题,即该字段为空。

最佳答案

您需要将/NeedAppearances 标记设置为 True。

看看这个 - https://github.com/pmaupin/pdfrw/issues/84#issuecomment-463493521

关于Python 库 "PDFrw"写入的注释在单击字段之前保持不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59730098/

相关文章:

python - Dataframe Apply方法返回多个元素(系列)

python - 如何从字符串列表中提取数字?

python - 如何轻松检查字符串是否以 4N 个空格开头?

Python:如何将字符串 'ub' 添加到字符串中每个发音的元音前?

ios - 从 pdf 数据中提取单个页面(或页面范围)而不加载整个 pdf(有时会占用太多 RAM)

python - 从 URL 请求加载 JSON 文件

ios - 创建多页 PDF

java - 在java中打开pdf文件时出现警告

linux - 如何创建 PDF 的 JPG 预览(使用 Linux 命令行)?

javascript - 获取 iframe 中 pdf 的当前页和总页 - pdf.js