既然有"好东西",怎么能不和我的小伙伴们分享呢,来看下整个实现的过程。step1 首先需要我们申请下百度文字识别的API如下图,其中APP_ID,API_KEY,SECRECT_KEY是我们后面要用到的:
step2 安装所需的模块:
# 这三个python中默认已安装,所以不用安装了
import sys
import os
import glob
pip install docx
pip install PIL
pip install baidu-aip
pip install pdf2docx
# 在安装aip这个模块时,差点坑到我,模块真实名字叫做baidu-aip,
# 调用的时候却是aip,这真TM狗。
# 加载需要的功能函数
import sys
import os
import glob
from docx import Document
from os import path
from aip import AipOcr
from PIL import Image
step3 开始写pdf/png转word的函数:
# png 转 word
def baiduOCR(picfile, outfile):
"""
利用百度api识别文本,并保存提取的文字
picfile: 图片文件名
outfile: 输出文件名
"""
# step1 配置api信息
APP_ID = 'xxx'
API_KEY = 'xxxxxxxx'
SECRECT_KEY = 'xxxxxxxxxxxxxx'
client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)
# step2 图片识别参数设置及调用api
filename = path.basename(picfile)
imgRead = open(picfile, 'rb').read()
print("正在识别图片:\t" + filename)
""" 可选参数 """
options = {"language_type": "CHN_ENG",
"detect_direction": "true",
"detect_language": "true",
"probability": "true"}
message = client.basicAccurate(imgRead,options=options) # 通用文字高精度识别
print("识别成功!")
# step3 结果保存
if path.exists(outfile):
os.remove(outfile)
document = Document()
for text in message["words_result"]:
document.add_paragraph(text["words"])
document.save(outfile)
baiduOCR(picfile, outfile)
# picfile:你实际的png文件名
# outfile:输出结果的文件名
# pdf 转 word
from pdf2docx import Converter
pdf_file = './example/test.pdf'
docx_file = './sample.docx'
# convert pdf to docx
cv = Converter(pdf_file)
cv.convert(docx_file,start=0, end=None) # all pages by default
cv.close()