使用python pdfquery解析xml

时间:2019-06-27 10:59:48

标签: python xml pdf

我必须阅读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')

0 个答案:

没有答案