从pdf文件中提取相关字段

问题描述 投票:-2回答:1

我正在尝试使用python自动将一堆pdf中的某些字段与表中的其他记录进行匹配。

这里是发票格式的典型pdf外观。

enter image description here

我基本上想将发票中的粗体标题及其对应的值(删除的东西)提取为文本,并将其存储为不同的列(粗体标题作为列名)。

类似于此pdf文件,我要提取发票日期客户IDCONSOL号码重量体积可充电MAWBHAWBDESCRIPTION(及其下的文本),CHARGES IN USD等,以及它们具有的对应值(黑色删除线)。基本上是大多数BOLD标题字段。

为此,我在Python中使用了多个pdf文本包,包括PyPDF2,Textract。发现Textract更好,因为它在字段之间保留了制表符空间。以下是我在上面的pdf上使用textract得到的结果

import textract
text = textract.process('./invoices/ABC/Invoice.pdf', method='pdfminer')

print(text)

这里是此pdf的相应文本

b' ABC Singapore Pte Ltd\n SG-Singapore - Co-Load\n No 30, Carta Avenue\n #01-06 and 02-06\n 4981 SINGAPORE    \n Singapore  \n Tel : +65 1234 56778  \n\nINVOICE ABC00518941 Copy\n\ABC PROJECT\n9 CHANGI SOUTH \nTAMPINES 486345 \n \n \n\nINVOICE DATE\nCUSTOMER ID\nSHIPMENT\nDUE DATE\nTERMS\nINCOTERM\n\nPage 1 of 1\n\n10-Oct-19 \nSGARSCDISIN\nSSISA017170\n09-Nov-19 \n30 days from Inv. Date\nDAP - Delivered At Place\nC06273660\n\n**Try the ABC e-Booking tool available for you through the IRIS portal** CONSOL NUMBER\n\n********************************************************************************************************************\n\nSHIPMENT DETAILS\nSHIPPER\nKUSU PTE LTD C/O ABC PTE LTD\nREFERENCE\n2500440249, 227364\nGOODS DESCRIPTION\nCABLE, 2M C14-C13 WHITE/   CABLE, 2M C14-C13 BLACK/   ROUTER, PTX1000 SYSTEM WITH 72-PORT 40G QSFP+ / 24-PORT 100G \nQSFP28 / 288-PORT 10G SFP+ WITH 4 1600W AC POWER SUPPLIES AND 3 FAN TRAYS/   INVOICE NO: 227364\nIMPORT CUSTOMS BROKER\n\nCONSIGNEE\nXYZ HONG KONG LIMITED\n\nIssued By John [email protected]\n\nWEIGHT\n90.000 KG\n\nVOLUME\n0.834 M3\nMAWB\n61872336191\n\nCHARGEABLE\n139.000 KG\n\nPACKAGES\n1 PLT\n\nHAWB\nSISA19017170\n\nETD 20-Sep-19\nETD 21-09-19 14:30\n\nGOODS DELIVERED TO\n\nDESTINATION\n\nETA 25-09-19 10:00\nHKHKG = Hong Kong, Hong Kong ETA 21-09-19 18:40\n\nFLIGHT / DATE\n / SQ865 / \n\nGOODS COLLECTED FROM SGSIN = Singapore , Singapore\nSGSIN = Singapore, Singapore\nORIGIN\nCHARGES\n\nDESCRIPTION\n\nFreight charge - 139 KG @ USD 0.70/KG \n\nWarehouse Handling - Gateway Fee \n\nHandling - Origin Handling \n\nDelivery Cartage \n\nDocumentation fee \n\nGST IN USD\n\nCHARGES IN USD\n\nZero Rated\n\nZero Rated\n\nZero Rated\n\nZero Rated\n\nZero Rated\n\n97.30\n\n50.00\n\n65.00\n\n75.00\n\n32.50\n\nTOTAL CHARGES\nPlease contact us within 7 days should there be any discrepancies.\n\nInterest rate of 1.5% per month will be charged on overdue invoices.\n\nNEW: Payment available via HSBC PayNow\n\nSUBTOTAL\nADD GST\n\nTOTAL USD\n\n319.80\n0.00\n\n319.80\n

我现在需要使用正则表达式来获取这些字段和相应的值,但是我不确定如何找到合适的模式使正则表达式在本文中起作用。

任何帮助将不胜感激。

谢谢

我正在尝试使用python自动将一堆pdf中的某些字段与表中的其他记录进行匹配。这是典型的pdf格式,类似于发票格式。我基本上想...

python regex pdf
1个回答
0
投票

Amazon Textract是一项AWS服务,其创建是针对文档和PDF图像中的OCR(光学字符识别)问题的专用解决方案。它提供了进一步的语义结构,可帮助进行文本策展/格式化,从而抽象化开发人员传统上需要自己编写的其他形式的后处理。您可以查找更多有关它的信息here

© www.soinside.com 2019 - 2024. All rights reserved.