python转换doc到pdf(利用python将图片版PDF转文字版PDF)
类别:脚本大全 浏览量:2786
时间:2021-10-07 00:02:28 python转换doc到pdf
利用python将图片版PDF转文字版PDF图片版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 pypdf2 pip install ghostscript pip install baidu - aip pip install pdfkit |
pip安装pythonmagick
https://www.lfd.uci.edu/~gohlke/pythonlibs/
|
cd 下载目录 pip install pythonmagick‑ 0.9 . 13 ‑cp36‑cp36m‑win_amd64.whl |
pypdf2用于拆分和合并pdf
示例代码如下:
|
#导入pdffilereader和pdffilewriter from pypdf2 import pdffilereader, pdffilewriter #获取一个pdf对象 pdf_input = pdffilereader( open (r 'pdf路径' , 'rb' )) #获取pdf页数 page_count = pdf_input.getnumpages() #获取pdf第四页的内容 page = pdf_input.getpage( 3 ) page[ '/contents' ] #获取一个pdfwriter对象 pdf_output = pdffilewriter() # 将一个 pageobject 加入到 pdffilewriter 中 pdf_output.addpage(page) #把新pdf保存 pdf_output.write( open (r '新pdf路径' , 'wb' )) |
pythonmagick用于将单页pdf转化为jpg
百度云-文字识别-python sdk
每天有500次免费的识别
示例代码如下:
|
#导入baidu-aip from aip import aipocr #https://console.bce.baidu.com/#/index/overview #产品服务->人工智能->文字识别->创建应用 #获取以下三个值 app_id = '??' api_key = '??' secret_key = '?? ' #新建一个aipocr client = aipocr(app_id, api_key, secret_key) #读取本地图片的函数 def get_file_content(filepath): with open (filepath, 'rb' ) as fp: return fp.read() #读取本地图片 image = get_file_content( 'p1.jpg' ) #可选参数 options = {} options[ "language_type" ] = "chn_eng" options[ "detect_direction" ] = "true" options[ "detect_language" ] = "true" options[ "probability" ] = "true" #通用文字识别 client.basicgeneral(image, options) #读取网络图片 url = "https://note.youdao.com/yws/public/resource/1577071c1ffa2b6bf4e238ef6dbcfbf5/xmlnote/e5a19bedfeba4879b217c5bbf53b0245/22138" #可选参数 options = {} options[ "language_type" ] = "chn_eng" options[ "detect_direction" ] = "true" options[ "detect_language" ] = "true" options[ "probability" ] = "true" #通用文字识别 client.basicgeneralurl(url, options) #读取本地表格图片的函数 def get_file_content(filepath): with open (filepath, 'rb' ) as fp: return fp.read() #读取本地表格图片 image = get_file_content( 'p2.jpg' ) #可选参数 options = {} options[ "language_type" ] = "chn_eng" options[ "detect_direction" ] = "true" options[ "detect_language" ] = "true" options[ "probability" ] = "true" #通用文字识别 client.basicgeneral(image, options) #读取表格分割效果较差! |
pdfkit用于利用字符串生成pdf
示例代码如下:
|
#pdfkit安装位置设置 path_wk = r 'pdfkit安装位置设置' pdfkit_config = pdfkit.configuration(wkhtmltopdf = path_wk) #pdfkit参数 pdfkit_options = { 'encoding' : 'utf-8' ,} #制作pdf pdfkit.from_string(( 'string' ), 'd:\test.pdf' ,configuration = pdfkit_config,options = pdfkit_options) |
完整代码如下
|
#导入所需包 #os,操作文件和路径 import os #ghostscript,代码简化 import ghostscript #pypdf2,拆分pdf from pypdf2 import pdffilereader, pdffilewriter #pythonmagick,单页pdf转图片 from pythonmagick import image #baidu-aip,百度文字识别 from aip import aipocr #pdfkit,字符串制作pdf import pdfkit #参数 path = '??' pdfname = '??' dpi = '85' #https://console.bce.baidu.com/#/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' ) #图片转化为字符串 #新建一个aipocr client = 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) #字符串写入pdf for page_num in page_range: pdfkit.from_string((allteststr[page_num]), '%s.pdf' % ( str (page_num)),configuration = pdfkit_config,options = pdfkit_options) #合并单页pdf pdf_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
原文链接:https://blog.csdn.net/sqq513/article/details/79368243
您可能感兴趣
- asp.net将ppt文档转换成pdf
- php读取远程的txt文件(php 根据URL下载远程图片、压缩包、pdf等文件到本地)
- php标签怎么写(php 使用mpdf实现指定字段配置字体样式的方法)
- python3html怎么转换成pdf(Python实现html转换为pdf报告生成pdf报告功能示例)
- vue浏览pdf文件(如何在vue中使用pdfjs预览pdf文件)
- asp.net把word文档转换成pdf
- python后端生成的pdf文件(Python实现截取PDF文件中的几页代码实例)
- php把当前网页生成pdf(php转换上传word文件为PDF的方法基于COM组件)
- python pdf文件操作(Python常见读写文件操作实例总结文本、json、csv、pdf等)
- python创建pdf(Python玩转PDF的各种骚操作)
- html转ppt(HTML里显示pdf、word、xls、ppt的方法示例)
- asp.net将Excel文档转换成pdf
- html5canvas画图有什么用(Html5基于canvas实现电子签名并生成PDF文档)
- vue前台解析pdf文件流(Vue实现在线预览pdf文件功能利用pdf.js/iframe/embed)
- ASP.NET将WORD、PDF、PPT转为图片
- ftp文件管理工具(ftp服务器PDF文件在线查看的实现方法)
- 你怎么忘了是说先爱我(你怎么忘了如何爱我)
- 做技术难吗(技术难不难)
- 林心如是谁(林心如是谁演的)
- 泰国安全吗(泰国安全吗2023)
- 菲律宾安全吗(菲律宾安全吗)
- 泰国旅游攻略(泰国旅游攻略必去景点)
热门推荐
- python切片的用法(Python进阶之全面解读高级特性之切片)
- left join on 查询
- 怎么用python实现链表(Python3实现的判断回文链表算法示例)
- 网站图片防盗链的常见方法
- dataset详解(DATASET 与 DATAREADER对象有什么区别)
- vue考试链接重置(Vue实现答题功能)
- js如何实现定时器功能(js实现0ms延时定时器的几种方式)
- 腾讯云轻量服务器怎么降低延迟(腾讯云星星海SA2云服务器配置规格性能实际评测)
- 一个网站服务器有多大(主流网站服务器配置有哪些组成 主流网站服务器多少钱)
- MySQL定时任务(EVENT事件)如何配置详解(MySQL定时任务EVENT事件如何配置详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9