如何使用 python pdfrw 库将 PDF 网络链接转换为文件打开操作

How to convert PDF web links to file open actions with python pdfrw library

我正在使用 pdfkit 将 html 转换为 pdf,效果很好,但 pdf 中的外部 links 是网络 links。

我们正在使用的 pdf 查看器无法识别 pdf 网络 link,但文件打开操作有效。

我一直在尝试将 pdf link 注释从 Web link 更改为使用 pdfrw 库的文件打开操作。

我尝试使用以下代码编辑 pdf 注释,但它不起作用。

        annot.A.update(pdfrw.PdfDict( S='/Launch'))
        annot.A.update(pdfrw.PdfDict( F={}))
        annot.A.F.update(pdfrw.PdfDict( Type='/Filespec'))
        annot.A.F.update(pdfrw.PdfDict( F='(part-1.pdf)'))
        annot.A.pop('/Type')
        annot.A.pop('/URI')

link 出现在新的 pdf 中,但没有与之关联的操作或目标文件。

所以经过今天类似的战斗...

您不能将 S='/Launch' 定义为这样的字符串。您必须使用:

  annot.A.update(pdfrw.PdfDict( S=pdfrw.PdfName('Launch')))

与 filespec 等类似。您可能还需要从文件名中删除 () - 因为这似乎会破坏它,至少在 Apple Preview 中是这样。