范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python实现PDF扫描件生成DOCX或EXCEL功能

  1.问题描述
  应项目需求需要获取PDF扫描文件的内容,但寻遍整个网络能达到这种功能的产品,都要会员充值。苦于囊中羞涩也只好编写功能代码来实现了。
  如PDF中表格图片图-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 表格图片文字识别到excelimport pandas as pd import numpy as np import re # 图片识别 from aip import AipOcr # 时间模块 import time # 网页获取 import requests # 操作系统接口模块 import os  image_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 images   def 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文件。

泰山队夏窗续约第1签!郝伟力荐,蒿俊闵接班人留队啦北京时间9月2日,距离中超豪门山东泰山一线队23号球员郝海毅合同到期的日子还剩下20多天的时候,随着中超夏窗转会窗口的关闭,这个情况也让依然留在泰山一线队的郝海毅基本上拿到了泰山队英超欣欣向荣,中超离世界第六联赛渐行渐远从詹俊评述员社交账号得知,英超本赛季夏窗引援投入超过19亿英镑!超过151亿人民币!英超是世界第一联赛不仅仅是因为它金钱投入世界最多,还有英超的产出也是世界最多!!就英超降级最后一还原真人级别按摩体验HITH足浴器B1测评俗话说脚是人的第二心脏,年轻的时候很少有人注意,但随着年龄的增长和每日工作的繁重,泡脚也逐渐成为了当代年轻人最简单的养生方式。虽说现在的足疗店也有很多,但随着疫情大环境之下,去足浴6大球星有望压哨加盟曼联皇马小王子巴萨前锋在花费1亿欧元得到安东尼后,曼联似乎清空了转会预算。但天空体育透露,英超夏窗关闭之前,已经投入超过2亿英镑的曼联仍然有可能带来新的压哨交易,6大球星仍然有望在最后时刻加盟曼联。1加骁龙870双X轴线性马达,这款小尺寸平板,降至2048元起在过去几年,平板电脑市场陷入了无限期的下滑和停滞,甚至iPad的销量都逐渐出现了下滑的趋势,以至于国内的手机厂商都纷纷砍掉了平板产品线。可谁又能想到,因为众所周知的原因彻底改变了两苹果新一代坚固型AppleWatchPro可能具备卫星通讯能力去年iPhone13系列发布之前,就有传言指出苹果计划为未来的iPhone加入卫星功能,可实现无蜂窝网络信号的情况下,借助卫星进行紧急通讯。最新的消息称iPhone14即将加入卫星雷军晒ampampquot与小米自动驾驶车合照ampampquot!首款量产车或与宝马5系尺寸相似8月28日,小米创始人兼CEO雷军在个人社交平台上晒照。照片是自己与小米自动驾驶测试车的合照,并抛出问题大家在路上见过我们的自动驾驶测试车吗?。套用宝马5系车体的小米自动驾驶测试车NBA一夜6大突发交易动态纳什嘲讽杜兰特骑士8换1交易到米切尔一骑士8换1得到爵士当家球星米切尔今天联盟又出现了一笔重磅交易,ESPN记者爆料骑士8换1得到了爵士的当家球星米切尔,他们付出了马尔卡宁阿巴吉塞克斯顿5个首轮签,交易完成之后,骑士服务贸易平稳增长生活必需品市场供应总体充足商务部新闻发言人回应近期经贸热点新华社北京9月1日电题服务贸易平稳增长生活必需品市场供应总体充足商务部新闻发言人回应近期经贸热点新华社记者王雨萧谢希瑶今年以来我国服务贸易发展情况如何?如何推动服务贸易高质量发展?注意!手机防窥膜正在伤害你的眼睛中关村在线消息9月2日中午,一则防窥膜伤眼睛的消息上了热搜,一名网友分享表示自己在使用了23个月防窥膜之后眼睛都要瞎了,呼吁其他用户们不要使用。笔者身边也有一些手机用户给自己的爱机纯干货,5年3次半永久纹眉后的忠告1。明确纹眉目的想清楚,仔细看下文。就可能搞不好会丑个一年,或多花一两千洗眉,又痛又费钱退钱这种事就不要想了。2。正常是维持23年,如果你皮肤的角质层薄且敏感,留色难度也会大,停留
切尔西代理主帅现在我感觉很好,我会尽全力展示自己直播吧4月4日讯切尔西代理主帅布鲁诺萨尔托上任后的首场比赛就是主场对阵利物浦的英超第8轮补赛,赛前,萨尔托谈到了自己目前的感受(被任命为代理主帅)这不是我的决定,而是俱乐部的,俱乐清明节消防安全提示请注意查收梨花风起正清明,游子寻春半出城。临近清明,上坟祭祖郊游踏青的人逐渐增多,扫墓祭祖场所文物建筑和旅游风景区,焚香烧纸点蜡燃放鞭炮等活动频繁,再加上近期晴暖少雨,大风天气较多,稍有不慎玉渊潭樱花进入观赏期!高峰时段将单向游览暂缓入园北京日报客户端记者代丽丽阳春三月花意浓,樱花盛放满枝繁。本周末公园早樱已是落樱缤纷,园内八重红彼岸白妙松前红绯衣等中花期品种已渐次绽放进入观赏期,公园将再迎赏樱客流高峰。为保障市民中国恢复144小时外国人免签证过境政策谁可以申请?Chinahasresumedthe144hourvisafreetransitpolicy,whichallowspeoplefromcertaincountriestoenjo李铁立功了!体坛反腐带走4大项3个一把手或前任,体育产业链颤抖北京时间4月4日,席卷中国体坛的反腐行动还在继续,就在今日,又有一个全中国体育界大协会的一把手被带走。此前中国足协的一把手陈戌源已经被正式带走,另外现任的中国田径协会主席于洪臣涉嫌黄绍基周大福用黄金讲好中国故事作为黄金行业的头部品牌,周大福的店铺近年来越来越频繁地出现在各大时尚和高端的购物中心当中。黄金,已经从过去年长者才会关注的消费品向着越来越多年轻消费者倾斜。面对如此趋势,周大福珠宝2023年第14周世界排名!女单前十国乒独占7席,张本智和反超马龙北京时间4月4日,国际乒联公布了2023年乒乓球运动员最新世界排名。在3月19日WTT新加坡大满贯赛结束后,近两周未举办大型赛事。只有上周举办了低级别的WTT支线赛安塔利亚站,以及沧浪之水濯蔡足老蔡,全国人民都认得,曾是乒乓球世界冠军,上世纪九十年代国乒重振雄风的关键人物,现在跟我一样,准备在家带孙子。近日网上其传闻甚嚣尘上。我不会仰观天象,俯察地理,只是盯着他的名字反复孙兴慜谈金玟哉你们知道我多喜欢他,他已承认错误并道歉韩国球星孙兴慜日前在采访中再次谈及金玟哉,回应了两人之间的相关问题。在友谊赛不敌乌拉圭后,金玟哉面对媒体说我现在精神层面很疲倦,我只想专注于俱乐部的比赛而不是国家队,我没有更多话可为什么说张隆是渣男?张隆已经静悄悄的出国了,他没有跟李梦同行,很有可能为李梦的WNBA之行去打前站了。张隆的前妻赵蕾为儿女抚养费的问题也不闹腾了,应该是他支付了那五万的抚养费。尽管这事息事宁人了,但李和国足同坐头等舱!博主吐槽国脚撩妹喝酒吃垃圾食品,脏话不断北京时间4月4日,一则视频在国内媒体球迷圈里传出来,是一个叫做非哥说财富的博主在6天前发布的一则吐槽国足的视频,视频内容相当劲爆引发热议,有支持该博主的,也有反对该博主的,我们一起