我必须阅读pdf文件(约200页)中的发票数据。我使用第一次使用的pdfquery库创建了此脚本。
我必须提取数据的方式是一一读取xml行,识别行号并提取数据。我的问题是,在pdf中,该行具有另一个数字,并且我提取了另一个数据。
我想以文本形式阅读文档页面,并使用正则表达式提取数据。如何将pdf转换为文本?
谢谢。
导入操作系统 导入pdfquery 从lxml导入etree
如果名称 ==“ 主要”:
file_path = 'InputFiles'
#file_path = 'PDFInput'
for file in os.listdir(file_path):
if file.endswith('.pdf') or file.endswith('.PDF'):
#print(file)
pdf = pdfquery.PDFQuery(file_path+'/'+file)
num_paginas = pdf.doc.catalog['Pages'].resolve()['Count']
#print('Num: ', num_paginas)
for pagina in range(0, num_paginas, 2):
#print('Pagina: ', pagina)
pdf.load(pagina)
pdf.tree
line = 0
for etiqueta in pdf.tree.iter():
line = line + 1
#print(str(tag)+' '+str(tag.text))
#print(str(line)+' '+str(etiqueta.text))
if line == 59:
num_serie = etiqueta.text.strip()
if line == 61:
fecha = etiqueta.text.strip()
if line == 66:
num_factura = etiqueta.text.strip()
if line == 90:
descripcion = etiqueta.text.strip()
if line == 91:
centro = etiqueta.text[8:12].strip()
if line == 103:
precio_unitario = etiqueta.text.strip()
print(str(file)
+' '+str(num_paginas)
+' '+str(pagina+1)
+' '+str(num_serie)
+' '+str(fecha)
+' '+str(num_factura)
+' '+str(descripcion)
+' '+str(centro)
+' '+str(precio_unitario))
print('FIN')