利用python将图片版PDF转文字版PDF

  

图片版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