教你批量快速实现pdf/png转word

图片

最近在和一个朋友聊天时候,偶然了解到她为了把pdf/png转成word,特地开了一个WPS的会员(她是做行政岗的,经常需要把文档转换成word),于是我给她写了一个pdf/png转word的代码,速度又快又免费。
图片

既然有"好东西",怎么能不和我的小伙伴们分享呢,来看下整个实现的过程。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()

是不是很简单,几行代码搞定,你可以根据自己的情况,进一步封装一下,如果你只需要把pdf转word,只需要安装pdf2docx就可以啦,使用贼方便!有问题可以随时私聊我哦!都看完了,不关注+点赞一下嘛!

你可能感兴趣的:(教你批量快速实现pdf/png转word)