图片版PDF无法复制,转化成文字版的PDF后使用更方便。
我们需要用到python3.6, pypdf2,内容,PythonMagick,百度文字识别服务和pdfkit。
安装
安装python3.6略
安装内容
https://ghostscript.com/download/gsdnld.html
安装wkhtmltopdf https://wkhtmltopdf.org/downloads.html
内容,
pip安装PyPDF2 baidu-aip, pdfkit
pip安装PyPDF2 pip安装内容 pip安装baidu-aip pip安装pdfkit
pip安装PythonMagick
https://www.lfd.uci.edu/gohlke pythonlibs/
乳糜泻下载目录 pip安装PythonMagick& # 8209; 0.9.13& # 8209; cp36& # 8209; cp36m& # 8209; win_amd64.whl
pypdf2用于拆分和合并PDF
示例代码如下:
#导入PdfFileReader和PdfFileWriter 从进口PdfFileReader PyPDF2 PdfFileWriter #获取一个pdf对象 pdf_input=PdfFileReader (open (r 'pdf路径,rb)) pdf页#获取数 page_count=pdf_input.getNumPages () #获取pdf第四页的内容 页面=pdf_input.getPage (3) 页面('/内容') #获取一个pdfWriter对象 pdf_output=PdfFileWriter () #将一个PageObject加入到PdfFileWriter中 pdf_output.addPage(页面) #把新pdf保存 pdf_output.write(打开(r '新pdf路径”、“白平衡”)) >之前PythonMagick用于将单页PDF转化为jpg
百度云——文字识别python SDK
每天有500次免费的识别
示例代码如下:
#导入baidu-aip 从aip进口AipOcr # https://console.bce.baidu.com//索引/概述 #产品服务→人工智能→文字识别→创建应用 #获取以下三个值 APP_ID=' & # 63; & # 63; API_KEY=' & # 63; & # 63; SECRET_KEY=' & # 63; & # 63;' #新建一个AipOcr 客户=AipOcr (APP_ID API_KEY SECRET_KEY) #读取本地图片的函数 def get_file_content (filePath): 打开(filePath, rb)外交政策: 返回fp.read () #读取本地图片 形象=get_file_content (“p1.jpg”) #可选参数 选择={} 选项(“language_type”)=" CHN_ENG " 选项(“detect_direction”)=" true " 选项(“detect_language”)=" true " 选项(“概率”)=" true " #通用文字识别 客户端。basicGeneral(形象,选项) #读取网络图片 url=" https://note.youdao.com/yws/public/resource/1577071c1ffa2b6bf4e238ef6dbcfbf5/xmlnote/E5A19BEDFEBA4879B217C5BBF53B0245/22138 " #可选参数 选择={} 选项(“language_type”)=" CHN_ENG " 选项(“detect_direction”)=" true " 选项(“detect_language”)=" true " 选项(“概率”)=" true " #通用文字识别 客户端。basicGeneralUrl (url选项) #读取本地表格图片的函数 def get_file_content (filePath): 打开(filePath, rb)外交政策: 返回fp.read () #读取本地表格图片 形象=get_file_content (“p2.jpg”) #可选参数 选择={} 选项(“language_type”)=" CHN_ENG " 选项(“detect_direction”)=" true " 选项(“detect_language”)=" true " 选项(“概率”)=" true " #通用文字识别 客户端。basicGeneral(形象,选项) #读取表格分割效果较差! >之前pdfkit用于利用字符串生成pdf
示例代码如下:# pdfkit安装位置设置 path_wk=r 'pdfkit安装位置设置的 pdfkit_config=pdfkit。配置(wkhtmltopdf=path_wk) # pdfkit参数 pdfkit_options={“编码”:“utf - 8”,} #制作PDF pdfkit.from_string((“字符串”),“D: \ test.pdf”,配置=pdfkit_config选项=pdfkit_options) >之前完整代码如下
#导入所需包 # os,操作文件和路径 进口操作系统 #内容,代码简化 导入内容 # pypdf2,拆分pdf 从进口PdfFileReader PyPDF2 PdfFileWriter # PythonMagick,单页PDF转图片 从PythonMagick导入图像 # baidu-aip,百度文字识别 从aip进口AipOcr # pdfkit,字符串制作PDF 进口pdfkit #参数 路径=' & # 63;& # 63; pdfname=' & # 63; & # 63; DPI=' 85 ' # https://console.bce.baidu.com//索引/概述 #产品服务→人工智能→文字识别→创建应用 #获取以下三个值 APP_ID=' & # 63; & # 63; API_KEY=' & # 63; & # 63; SECRET_KEY=' & # 63; & # 63;' # pdfkit安装位置设置 path_wk=r 'pdfkit安装位置设置的 pdfkit_config=pdfkit。配置(wkhtmltopdf=path_wk) # pdfkit参数 pdfkit_options={“编码”:“utf - 8”,} # PDF转化为图片 os.chdir(路径) pdf_input=PdfFileReader(打开(pdfname rb)) PDF页#自动获取数 page_count=pdf_input.getNumPages () page_range=范围(page_count) #也可以手工指定PDF需要转换的页数 # page_range=范围(0100) #使用PyPDF和内容 #==超级好,用超级直观,超级短==在page_range page_num: 我=图像() im.density (DPI) 即时通讯。读(pdfname + ' (' + str (page_num) + ') ') im.write (str (page_num) + . jpg) #图片转化为字符串 #新建一个AipOcr 客户=AipOcr (APP_ID API_KEY SECRET_KEY) #读取本地图片的函数 def get_file_content (filePath): 打开(filePath, rb)外交政策: 返回fp.read () #可选参数 选择={} 选项(“language_type”)=" CHN_ENG " 选项(“detect_direction”)=" false " 选项(“detect_language”)=" false " 选项(“概率”)=" false " allteststr=[] 在page_range page_num: #读取本地图片 形象=get_file_content (r ' % s \ % s.jpg ' %(路径,page_num)) #通用文字识别,得到的是一个东西 testjson=客户。basicGeneral(形象,选项) teststr=" 在testjson x [' words_result ']: teststr=teststr + x['文字']+ & lt;/br>” allteststr.append (teststr) #字符串写入PDF 在page_range page_num: pdfkit.from_string (allteststr [page_num]), % s.pdf ' % (str (page_num)),配置=pdfkit_config选项=pdfkit_options) #合并单页PDF pdf_output=PdfFileWriter () 在page_range page_num: os.chdir(路径) pdf_input=PdfFileReader(开放(' % s。pdf的% (str (page_num)), rb ')) 页面=pdf_input.getPage (0) pdf_output.addPage(页面) pdf_output.write(打开(“newpdf.pdf”,“世界银行”))利用python将图片版PDF转文字版PDF