im目前正在制定工作计划。我必须每天通过约50 pdf,并对其进行重命名。因此,我正在开发一个程序,以从每个pdf中提取发票编号并将其重命名为该发票编号,但目前我所能做的就是让作者创建者生产者... ect。我如何只从pdf中提取发票编号?我正在使用pypdf2
ive遍及整个互联网,但找不到任何东西。
onehotencode_along_axis(a, axis=0).view('i1')
我希望能够从pdf中提取发票编号。
答案 0 :(得分:0)
您可能想为此使用正则表达式。我不知道您的PDF的确切格式,但它看起来应该像这样:
import re
pdfDocument = ''' somestuff
asdad
dasdd Invoice Number: 678903 other stuff
rest of the stuff '''
str2 = re.search(r'Invoice Number: [0-9]*', pdfDocument)
str2 = str2.group(0)
print(str2)
这将仅返回“发票号:678903”字符串。您可能需要相应地调整正则表达式。 regexr是用于设计正则表达式的非常方便的工具
编辑:
更多有关发票编号的来源。如果它具有除十进制数字以外的一些特殊键,则必须调整正则表达式。我找到了一种可以根据文件中的位置查找值的工具,但我从未使用过它,我不知道它是否能在您的情况下工作。我也认为你必须为此付出代价。同样,我认为我不会足够信任他们来处理我的机密数据。docparser
我认为最简单的方法仍然是将pdf解析为文本并使用regexp进行搜索。我发现也许将pdf解析为txt可能对您来说很麻烦。我会为此建议使用蒂卡。如果有pip,安装起来很容易:
pip3 install tika
然后,我制作了一些虚拟的pdf文档,其中包含Latex和隐藏的发票编号:
代码如下:
import re
from tika import parser
raw = parser.from_file('report.pdf')
pdfDocument = raw['content']
str2 = re.search(r'Invoice Number: [0-9]*', pdfDocument)
str2 = str2.group(0)
print(str2)