尝试用空字符串编辑和替换pdf中的价格(敏感信息)。使用过pdf_redactor并能够在命令行上运行它,但是发生了一些奇怪的事情。
按价格,我的意思是:10.10、4.60、15982.00、326.59等 使用的正则表达式:u“ [0-9] *(\,)[0-9] {2}”
会发生什么情况,即使没有小数点的10、500、1521等偶数也会被清空。我需要没有小数点的这些数字,因为它们代表已订购的数量以及纸箱数量,这是要保留的重要信息。
我怀疑的是,pdf是否实际编码为即使10这样的整数也实际上是10.00?
在这里您可以获取pdf_redactor。 https://github.com/JoshData/pdf-redactor
这似乎是最好/最简单的解决方案。对于像我这样的新手程序员来说,使用矩形覆盖pdf中的敏感部分更加困难。更不用说PDF包含在不同数量的页面中,并且表格的位置不同,具体取决于订单的大小。
我已经测试过我的正则表达式,这似乎是正确的。
将此代码存储在一个名为red.py的文件中。 我的代码如下,它是pdf_redactor git hub的简化版本:
从pdf_redactor导入编辑器 从pdf_redactor导入RedactorOptions 汇入
#Set options.
redactor_options = RedactorOptions()
redactor_options.content_filters = [
(re.compile(u"Cost Price"), lambda m : ""), #just replaces "Cost price" found in the pdf with ""
(re.compile(u"Cost"), lambda m : ""), #just replaces "Cost" found in the pdf with ""
(re.compile(u"Value Price"),lambda m : ""), #just replaces "Value Price" found in the pdf with ""
(re.compile(u"[0-9]*(\.)[0-9]{2}"), lambda m : ""), #this where i input the regex and it searches for prices and replaces it with ""
]
redactor(redactor_options)
然后我在命令行上运行:
python red.py
在我的bnew.pdf文件中,“成本价格”,“价值价格”和“成本”已按预期正确清空,但是所有价格都消失了(很好),但我的纸箱数量和订购数量也是如此是整数
电话号码不会被清空。 “ Tel:12 12345 1234”和整数邮政编码也不会被清空。
我还复制了这些整数并将其粘贴到文本文件中。 文本文件上的30是30,而不是像30.00一样被复制出来。 所以我真的很机智。
如果有人可以帮助我,将非常感谢。