<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
應專案需求需要獲取PDF掃描檔案的內容,但尋遍整個網路能達到這種功能的產品,都要會員充值。苦於囊中羞澀也只好編寫功能程式碼來實現了。
如PDF中表格圖片圖-1效果生成圖-2
圖-1
圖-2
整個步驟為:讀取PDF檔案->生成圖片->ORC獲取圖片內容->寫入Excel
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)
import 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)
我這裡是獲取JRT 0197-2020金融資料安全 資料安全分級指南.pdf掃描檔案,將內部表格資料寫入到excel檔案。
以上就是Python實現PDF掃描件生成DOCX或EXCEL功能的詳細內容,更多關於Python 掃描件轉DOCX EXCEL的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45