网址替换的pdf-redactor语法

时间:2019-02-23 05:30:01

标签: python pdf

使用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不变的方式?

非常感谢。

1 个答案:

答案 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这个家伙应该花更多的时间来处理文档。 :)