python pacakge pdf_redactor不区分“。”。

时间:2019-05-12 12:06:57

标签: python pdf

尝试用空字符串编辑和替换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

在我的bnew.pdf文件中,“成本价格”,“价值价格”和“成本”已按预期正确清空,但是所有价格都消失了(很好),但我的纸箱数量和订购数量也是如此是整数

电话号码不会被清空。 “ Tel:12 12345 1234”和整数邮政编码也不会被清空。

我还复制了这些整数并将其粘贴到文本文件中。 文本文件上的30是30,而不是像30.00一样被复制出来。 所以我真的很机智。

如果有人可以帮助我,将非常感谢。

0 个答案:

没有答案