1.以滴滴开具的增值税发票为例,需要批量提取的信息包括:PDF文件名、PDF内容:发票号码、开票日期、购买方名称、购买方纳税人识别号、“货物或应税劳务、服务名称”、数量、单价、金额、税率、税额、价税合计小写金额、销售方名称、销售方纳税人识别号。
2.需要输出为excel文件
3.酬金80

python批量提取发票的信息
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
21条回答 默认 最新
- 然然超绝肌肉线条 2024-08-02 23:43关注
以下是完整代码
import os import pandas as pd from pdfminer.high_level import extract_text from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import LAParams import io def extract_information_from_pdf(pdf_path): # 提取 PDF 文本内容 text = extract_text(pdf_path) # 解析发票信息 invoice_info = {} lines = text.split('\n') for line in lines: if '发票号码' in line: invoice_info['发票号码'] = line.split(':')[1].strip() elif '开票日期' in line: invoice_info['开票日期'] = line.split(':')[1].strip() elif '购买方名称' in line: invoice_info['购买方名称'] = line.split(':')[1].strip() elif '购买方纳税人识别号' in line: invoice_info['购买方纳税人识别号'] = line.split(':')[1].strip() elif '货物或应税劳务、服务名称' in line: invoice_info['货物或应税劳务、服务名称'] = line.split(':')[1].strip() elif '数量' in line: invoice_info['数量'] = line.split(':')[1].strip() elif '单价' in line: invoice_info['单价'] = line.split(':')[1].strip() elif '金额' in line: invoice_info['金额'] = line.split(':')[1].strip() elif '税率' in line: invoice_info['税率'] = line.split(':')[1].strip() elif '税额' in line: invoice_info['税额'] = line.split(':')[1].strip() elif '价税合计小写金额' in line: invoice_info['价税合计小写金额'] = line.split(':')[1].strip() elif '销售方名称' in line: invoice_info['销售方名称'] = line.split(':')[1].strip() elif '销售方纳税人识别号' in line: invoice_info['销售方纳税人识别号'] = line.split(':')[1].strip() return invoice_info def process_pdf_files(pdf_directory, output_excel): # 存储发票信息的列表 invoices = [] # 遍历 PDF 目录中的所有文件 for filename in os.listdir(pdf_directory): if filename.endswith('.pdf'): pdf_path = os.path.join(pdf_directory, filename) # 提取发票信息 invoice_info = extract_information_from_pdf(pdf_path) # 添加 PDF 文件名 invoice_info['PDF 文件名'] = filename invoices.append(invoice_info) # 创建 DataFrame df = pd.DataFrame(invoices) # 保存为 Excel 文件 df.to_excel(output_excel, index=False) # 指定 PDF 目录和输出 Excel 文件路径 pdf_directory = 'your_pdf_directory' output_excel = 'output.xlsx' # 处理 PDF 文件并生成 Excel process_pdf_files(pdf_directory, output_excel) #运行时记得将 'your_pdf_directory' 替换为实际的 PDF 文件目录路径。运行代码后,它将提取所有 PDF 文件中的发票信息,并将其保存到 output.xlsx 文件中。
在运行上述代码之前,你需要确保安装了以下库:
1. pandas :用于数据处理和创建 Excel 文件。
2. pdfminer :用于提取 PDF 文件中的文本内容。可使用命令通过pip安装
pip install pandas pdfminer
当然你也可以选择你熟悉的方法安装
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报