如何更改 PDF 文件中所有突出显示的颜色?

jgo*_*ann 6 command-line pdf

我想更改 PDF 文件中每个突出显示的颜色(无需手动更改每个突出显示)。最好使用命令行命令。

这是一个带有突出显示行的示例 PDF

jgo*_*ann 5

我编写了一个Python 脚本来执行该任务。它搜索 PDF 文件中的所有对象(由obj和标记endobj),并检查每个对象是否是/Type/Annot突出显示类型 ( /Subtype/Highlight)的注释( )。如果是这种情况,颜色定义 ( /C[...]) 将被替换。

有一些限制:

  • 没有对 PDF 进行真正的解析。使用的正则表达式可能不适合某些 PDF 文件。
  • 这可能不适用于加密或压缩的 PDF 文件。(我不确定注释是否可能被压缩。)
  • 原始文件将被覆盖。不要怪我丢失数据!(脚本很容易编辑以创建新文件。)
  • 我假设某些 PDF 对象通过它们在文件中的位置引用其他对象。因此,我防止文件大小发生变化。这意味着新的颜色定义可能不会比旧的占用更多的字节。
  • 颜色定义未验证。您可能会使用无效的表达式破坏 PDF。