使用https://github.com/JoshData/pdf-redactor 如果我提供带有多个URL链接的PDF并使用示例代码:
options.link_filters = [
lambda href, annotation : "https://www.google.com"
]
结果是将PDF中的每个URL更改为https://www.google.com
如何获取仅用https://www.example.com
替换https://www.google.com
并保持其他URL不变的方式?
非常感谢。
答案 0 :(得分:1)
实际上,您可以对该lib中的lambda
做很多事情。在您给我们的这种特定情况下,您在该函数中插入的任何内容都将带有 https://www.google.com 作为输出。
但是,如果您要进行其他更改,可以使用URL(href
)或annotation
(或两者!)作为参数来更改文档中的URL。我将向您介绍一种可以一次更改多个URL的方法:
options.link_filters = [lambda href, annotation:
'www.google.com' if href == 'www.example.com' else
'www.anything.com' if href == 'www.whatever.com' else
'www.nevermind.com' if href == 'www.bye.com' else href]
在这里,如果您可以将 www.example.com 的所有出现替换为 www.google.com , www.whatever.com 表示 www.anything.com , www.bye.com 表示 www.nevermind.com ,并保留所有其他URL。如果您需要使事情更具动态性,甚至可以将这些URL作为变量传递。
如果您要删除所有其他三个网址之一(例如,everything和bye.com),则可以在网址末尾将href
替换为None
上面的代码。
好吧,我想我们都同意pdf_redactor
这个家伙应该花更多的时间来处理文档。 :)