起因
最近報了乙個pmp的培訓班,然後呢,給我的一些資料是pdf文件,且不可以複製,那麼,我自己的學習整理的時候,就有點不方便,所以想把pdf中的文字提取出來。
猶記得還在讀書的時候,老師為了將pdf轉word讓我們找各種各樣的工具,最後經過一番折騰,目的是達成了,但是安裝了乙個很大的工具,這工具還不好找,且是國外的,每次跑起來,我的電腦都呼呼的響,現在好啦,曾經想都不敢想的事情,現在輕輕鬆鬆就做到了。
這個你值得了解一下,有免費的介面服務,做一些日常使用的小工具,足夠啦
註冊賬號登入,找到文字識別,建立乙個應用
然後找到檔案識別的sdk文件
sdk提供了各種語言的版本,但是我會優先選擇python,為什麼了?快啊!方便啊!
然後,就是直接上python**了,一般生成的檔名:
061416404698_0第五章模擬題專案範圍管理_1.jpeg
061416404698_0第五章模擬題專案範圍管理_2.jpeg
061416404698_0第五章模擬題專案範圍管理_10.jpeg
python遍歷資料夾之後得到的列表順序是這樣子的
['061416404698_0第五章模擬題專案範圍管理_1.jpeg','061416404698_0第五章模擬題專案範圍管理_10.jpeg','061416404698_0第五章模擬題專案範圍管理_2.jpeg']
所以,要對檔名做乙個排序
import os
from aip import aipocr
api_key = '換成你申請的api kye'
secret_key = '換成你申請的secret key'
words_fiilter = ['這裡例舉你要過濾掉的一些字元',]
""" 讀取 """
def get_file_content(filepath):
with open(filepath, 'rb') as fp:
return fp.read()
""" 刪除之前的識別結果 """
if os.path.exists("result.txt"):
os.remove("result.txt")
directory = input("請輸入資料夾路徑:")
for root, dirs, files in os.walk(directory): # 開始遍歷檔案
# 遍歷檔案
# 將檔案重新排序
files.sort(key=lambda x: int(x.split('_')[2].split('.')[0]))
for f in files:
src = os.path.join(root, f)
image = get_file_content(src)
""" 呼叫通用文字識別, 引數為本地 """
result = client.basicgeneral(image)
words_result = result["words_result"]
for words in words_result:
content = words["words"]
if content in words_fiilter: # 過濾掉 頁首 頁尾 和水印等資訊
continue
print(content)
with open("result.txt", 'a', encoding='utf-8') as f:
f.write(content+'\n')
直接執行,輸入資料夾路徑,識別的內容會輸出到result.txt的檔案中,搞定! C Word文件轉PDF的實現
private string adobepdfprint adobe pdf private string adobedisprint acrobat distiller private string regroot software adobe acrobat distiller private ...
使用pdfbox實現pdf轉image
使用soffice的命令把pdf轉image的話,預設只能轉一頁的,這個有點費勁,於是也不打算沿用soffice的方案了,改用pdfbox來實現。org.apache.pdfbox pdfbox 2.0.4 org.apache.pdfbox pdfbox tools 2.0.4 public st...
python檔案過濾,pdf轉swf
客戶發了乙個文字規範過來,是doc文件,我們要轉成swf,然後用flex 展示在網頁上。由於在轉換的過程中,檔案目錄包含 等特殊符號,導致pdf轉swf檔案失敗。因此想出乙個解決方案,就是把路徑包含 的檔案,移到乙個臨時目錄再轉swf,最後把swf放回源目錄。小工具採用python實現 import...