Python如何实现PDF扫描件生成DOCX或EXCEL功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关Python如何实现PDF扫描件生成DOCX或EXCEL功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.问题描述应项目需求需要获取
千家信息网最后更新 2026年11月02日Python如何实现PDF扫描件生成DOCX或EXCEL功能
这篇文章将为大家详细讲解有关Python如何实现PDF扫描件生成DOCX或EXCEL功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1.问题描述
应项目需求需要获取PDF扫描文件的内容,但寻遍整个网络能达到这种功能的产品,都要会员充值。苦于囊中羞涩也只好编写功能代码来实现了。
如PDF中表格图片图-1效果生成图-2

图-1
图-2
2.实现流程
整个步骤为:读取PDF文件->生成图片->ORC获取图片内容->写入Excel

3.功能代码
3.1 pdf转为图片
import fitz # pdf转为图片from aip import AipOcr # 图片文字识别import time # 程序运行时间间隔以避免出错import docx # 将识别结果保存为docx文件from docx.oxml.ns import qn # 设置docx文件的字体""" 你的 APPID AK SK """APP_ID = 'xxxxxx'API_KEY = 'xxxxxxxx'SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxx'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)'''将PDF转化为图片pdfPath pdf文件的路径imgPath 图像要保存的路径zoom_x x方向的缩放系数zoom_y y方向的缩放系数rotation_angle 旋转角度zoom_x和zoom_y一般取相同值,值越大,图像分辨率越高返回目标pdf的名称和页数,便于下一步操作'''def pdf_image(pdfPath, imgPath, zoom_x=10, zoom_y=10, rotation_angle=0): # 获取pdf文件名称 name = pdfPath.split("\\")[-1].split('.pdf')[0] # 打开PDF文件 pdf = fitz.open(pdfPath) # 获取pdf页数 num = pdf.pageCount # 逐页读取PDF for pg in range(0, num): page = pdf[pg] # 设置缩放和旋转系数 trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotation_angle) pm = page.getPixmap(matrix=trans, alpha=False) # 开始写图像 pm.writePNG(imgPath + name + "_" + str(pg) + ".png") pdf.close() return name, num'''将图片读取为docx文件imgPath 图像所在路径生成的docx也保存在图像所在路径中name为pdf名称(不含后缀)num为pdf页数name和num均可由上一个函数返回'''def ReadDetail_docx(imgPath, name, num): # 建立一个空doc文档 doc = docx.Document() # 设置全局字体 doc.styles["Normal"].font.name=u"宋体" doc.styles["Normal"]._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') # 读取图片 for n in range(0,num): i = open(imgPath+name+"_"+str(n)+".png",'rb') time.sleep(0.1) img = i.read() message = client.basicAccurate(img) content = message.get('words_result') # 将内容写入doc文档 for i in range(len(content)): doc.add_paragraph(content[i].get('words')) # 保存doc文档 doc.save(imgPath + name + '.docx')def pdf_to_docx(pdfPath, imgPath, zoom_x=10, zoom_y=10, rotation_angle=0): print("正在将pdf文件转换为图片...") # 调用函数一将pdf转换为图片,并获得文件名和页数 name_, num_ = pdf_image(pdfPath, imgPath, zoom_x, zoom_y, rotation_angle) print("转换成功!") #print("正在读取图片内容...") # 调用函数二逐页读取图片并逐行保存在docx文件中 # ReadDetail_docx(imgPath, name_, num_) #print("名为 {}.pdf 的pdf文件共有{}页,已成功转换为docx文件!".format(name_, num_))# pdf储存路径pdf_path = "JRT 0197-2020金融数据安全 数据安全分级指南.pdf"# 图片和生成的docx文件的储存路径img_path = r"G:\imges\\"# 调用函数pdf_to_docx(pdf_path, img_path)3.2 表格图片文字识别到excel
import pandas as pdimport numpy as npimport re# 图片识别from aip import AipOcr# 时间模块import time# 网页获取import requests# 操作系统接口模块import osimage_path = ''# 获取文件夹中所有图片def get_image(): images = [] # 存储文件夹内所有文件的路径(包括子目录内的文件) for root, dirs, files in os.walk(image_path): path = [os.path.join(root, name) for name in files] images.extend(path) return imagesdef Image_Excel(APP_ID, API_KEY, SECRET_KEY): # 调用百度AI接口 client = AipOcr(APP_ID, API_KEY, SECRET_KEY) # 循环遍历文件家中图片 images = get_image() for image in images: # 以二进制方式打开图片 img_open = open(image, 'rb') # 读取图片 img_read = img_open.read() # 调用表格识别模块识别图片 table = client.tableRecognitionAsync(img_read) # 获取请求ID request_id = table['result'][0]['request_id'] # 获取表格处理结果 result = client.getTableRecognitionResult(request_id) # 处理状态是"已完成",获取下载地址 while result['result']['ret_msg'] != '已完成': time.sleep(2) # 暂停2秒再刷新 result = client.getTableRecognitionResult(request_id) download_url = result['result']['result_data'] print(download_url) # 获取表格数据 excel_data = requests.get(download_url) # 根据图片名字命名表格名称 xlsx_name = image.split(".")[0] + ".xlsx" # 新建excel文件 xlsx = open(xlsx_name, 'wb') # 将数据写入excel文件并保存 xlsx.write(excel_data.content)if __name__ == '__main__': image_path = r"G:\imgs\\" APP_ID = 'xxxxxxxx' API_KEY = 'xxxxxxx' SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxx' Image_Excel(APP_ID, API_KEY, SECRET_KEY)4. 案例说明
我这里是获取JRT 0197-2020金融数据安全 数据安全分级指南.pdf扫描文件,将内部表格数据写入到excel文件。
关于"Python如何实现PDF扫描件生成DOCX或EXCEL功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
图片
数据
表格
路径
生成
功能
内容
图像
安全
函数
名称
页数
文档
模块
篇文章
系数
成功
代码
图片内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
河南云网互联网络科技有限公司
互联网科技公司税收优惠
河南真二互联网科技有限公司
高科技与互联网
互联网金融公司科技
互联网 视角下的科技创新
互联网科技公司名称
互联网养老 桔豆科技
盛创互联网科技有限公司
互联网科技实习生岗位职责
金融科技与互联网金融相同和不同
华夏恒生科技与互联网科技
互联网科技如何创业
深圳互联网科技的发展
半导体是互联网高科技吗
互联网科技包装股
互联网科技企业商标注意事项
互联网科技大佬云集
互联网大会出现的黑科技
互联网科技官网
互联网科技社
科技服务与互联网
狮子座互联网科技有限公司
互联网科技上市公司
互联网科技公司做什么
互联网金融监管科技
衡水科技产业互联网平台
互联网实体化科技化
互联网科技中介