图片版PDF无法复制,转化成文字版的PDF后使用更方便.
我们需要用到python3.6,pypdf2,ghostscript,PythonMagick,百度文字识别服务和pdfkit.
安装
安装python3.6 略
安装ghostscript
https://ghostscript.com/download/gsdnld.html
安装wkhtmltopdf
https://wkhtmltopdf.org/downloads.html
pip安装PyPDF2,ghostscript,baidu-aip,pdfkit
pip install PyPDF2pip install ghostscriptpip install baidu-aippip install pdfkitpip安装PythonMagick
https:///#/index/overview#产品服务->人工智能->文字识别->创建应用#获取以下三个值APP_ID = '??'API_KEY = '??'SECRET_KEY = '?? '#pdfkit安装位置设置path_wk = r'pdfkit安装位置设置'pdfkit_config = pdfkit.configuration(wkhtmltopdf = path_wk)#pdfkit参数pdfkit_options = {'encoding': 'UTF-8',}#PDF转化为图片os.chdir(path)pdf_input = PdfFileReader(open(pdfname, 'rb'))#自动获取PDF页数page_count = pdf_input.getNumPages()page_range=range(page_count)#也可以手工指定PDF需要转换的页数#page_range=range(0,100)#使用PyPDF和ghostscript#==超级好用,超级直观,超级短==for page_num in page_range: im = Image() im.density(DPI) im.read(pdfname + '[' + str(page_num) +']') im.write(str(page_num)+ '.jpg')#图片转化为字符串#新建一个AipOcrclient = AipOcr(APP_ID, API_KEY, SECRET_KEY)#读取本地图片的函数def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read()#可选参数options = {}options["language_type"] = "CHN_ENG"options["detect_direction"] = "false"options["detect_language"] = "false"options["probability"] = "false"allteststr=[]for page_num in page_range: #读取本地图片 image = get_file_content(r'%s\%s.jpg' % (path,page_num)) #通用文字识别,得到的是一个dict testjson=client.basicGeneral(image, options) teststr='' for x in testjson['words_result']: teststr=teststr+x['words']+'</br>' allteststr.append(teststr)#字符串写入PDFfor page_num in page_range: pdfkit.from_string((allteststr[page_num]),'%s.pdf' % (str(page_num)),configuration=pdfkit_config,options=pdfkit_options)#合并单页PDFpdf_output = PdfFileWriter()for page_num in page_range: os.chdir(path) pdf_input = PdfFileReader(open('%s.pdf' % (str(page_num)), 'rb')) page = pdf_input.getPage(0) pdf_output.addPage(page)pdf_output.write(open('newpdf.pdf','wb'))
以上就是为大家介绍的如何使用python3.6,pypdf2,ghostscript,PythonMagick,百度文字识别服务和pdfkit