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
您可能感兴趣
- pythonjpg转pdf格式(Python使用到第三方库PyMuPDF图片与pdf相互转换)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- vue前台解析pdf文件流(Vue实现在线预览pdf文件功能利用pdf.js/iframe/embed)
- python3html怎么转换成pdf(Python实现html转换为pdf报告生成pdf报告功能示例)
- python爬取百度搜索pdf文档(Python实现的爬取百度文库功能示例)
- python后端生成的pdf文件(Python实现截取PDF文件中的几页代码实例)
- ftp文件管理工具(ftp服务器PDF文件在线查看的实现方法)
- 利用python合并pdf(Python合并同一个文件夹下所有PDF文件的方法)
- html转ppt(HTML里显示pdf、word、xls、ppt的方法示例)
- python创建pdf(Python玩转PDF的各种骚操作)
- asp.net将ppt文档转换成pdf
- asp.net把word文档转换成pdf
- php读取远程的txt文件(php 根据URL下载远程图片、压缩包、pdf等文件到本地)
- html5canvas画图有什么用(Html5基于canvas实现电子签名并生成PDF文档)
- vue浏览pdf文件(如何在vue中使用pdfjs预览pdf文件)
- python读取word的表格(Python使用reportlab模块生成PDF格式的文档)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
- 以家人之名广受好评,剧情生动引起观众共鸣,演员张新成圈粉无数(以家人之名广受好评)
- 三兄妹感情再遇波折,人设接连崩塌 《以家人之名》剧情猜不透(三兄妹感情再遇波折)
热门推荐
- react初学难点(使用react的7个避坑案例小结)
- SQL Server获取时间段内的所有月份
- dockerfile启动容器服务(docker文件存放路径, 获取容器启动命令操作)
- redis的scan命令的使用(scrapy-redis源码分析之发送POST请求详解)
- 宝塔waf防火墙怎么关闭(宝塔面板防火墙添加百度云加速IP段白名单)
- Windows2012配置SQLServer2014AlwaysOn的图解(Windows2012配置SQLServer2014AlwaysOn的图解)
- mysql update 多个字段(mysql update case 更新字段值不固定的操作)
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- elasticsearch docker(在Docker中安装Elasticsearch7.6.2的教程)
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9