一、如何实现用python处理pdf
python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写。python在生物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料
python;CMD命令行;windows操作系统
方法/步骤
1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。
2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。
脚本第一行一定要写上 #!usr/bin/python
表示该脚本文件是可执行python脚本
如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。
3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度
4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。
二、python输出word内容
程序导出word文档的方法将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。转换效果也不错,使用方法非常简单。
\# 安装sudo apt-get install unoconv\# 使用unoconv -f pdf *.odtunoconv -f doc *.odtunoconv -f html *.odt缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
2. python-docx功能:1.python-docx是一个可以读写word文档的python库。使用方法:1.获取网页中的数据,使用python手动排版添加到word文档中。
from docx import Documentfrom docx.shared import Inchesdocument = Document()document.add_heading('Document Title', 0)p = document.add_paragraph('A plain paragraph having some ')p.add_run('bold').bold = Truep.add_run(' and some ')p.add_run('italic.').italic = Truedocument.add_heading('Heading, level 1', level=1)document.add_paragraph('Intense quote', style='IntenseQuote')document.add_paragraph('first item in unordered list', style='ListBullet')document.add_paragraph('first item in ordered list', style='ListNumber')document.add_picture('monty-truth.png', width=Inches(1.25))table = document.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Qty'hdr_cells[1].text = 'Id'hdr_cells[2].text = 'Desc'for item in recordset:row_cells = table.add_row().cellsrow_cells[0].text = str(item.qty)row_cells[1].text = str(item.id)row_cells[2].text = item.descdocument.add_page_break()document.save('demo.docx')from docx import Documentfrom docx.shared import Inchesdocument = Document()for row in range(9):t = document.add_table(rows=1,cols=1,style = 'Table Grid')t.autofit = False #很重要!w = float(row) / 2.0t.columns[0].width = Inches(w)document.save('table-step.docx')缺点:1.功能非常弱。有很多限制比如不支持模板等,只能生成简单格式的word文档。
程序导出PDF文档方法1.pdfkit功能:1.wkhtmltopdf主要用于HTML生成PDF。2.pdfkit是基于wkhtmltopdf的python封装,支持URL,本地文件,文本内容到PDF的转换,其最终还是调用wkhtmltopdf命令。
是目前接触到的python生成pdf效果较好的。优点:1.wkhtmltopdf:利用webkit内核将HTML转为PDFwebkit是一个高效、开源的浏览器内核,包括Chrome和Safari在内的浏览器都使用了这个内核。
Chrome打印当前网页的功能,其中有一个选项就是直接“保存为 PDF”。2.wkhtmltopdf使用webkit内核的PDF渲染引擎来将HTML页面转换为PDF。
高保真,转换质量很好,且使用非常简单。使用方法:\# 安装pip install pdfkit\# 使用import pdfkitpdfkit.from_url('', 'out.pdf')pdfkit.from_file('test.html', 'out.pdf')pdfkit.from_string('Hello!', 'out.pdf')缺点:1.对使用echarts,highcharts这样的js代码生成的图标无法转换为pdf(因为它的功能主要是将html转换为pdf,而不是将js转换为pdf)。
对于纯静态页面的转换效果还是不错的。2.其他其他生成pdf的插件还有:weasyprint,reportlab,PyPDF2等,经简单试验都不如pdfkit效果好,且有些用法复杂。
三、python生成pdf报告有什么好的思路
你要先生成一个模板,然后用 python 对模板进行修改。
如果是 pdf 模板:
可以使用 pyPdf 和 reportlab 包。参考
http://stackoverflow.com/questions/1180115/add-text-to-existing-pdf-using-python
如果是 word (.docx 文件)模板(建议使用 word 模板):
docx 文件可以用 zipfile 模块解压缩,然后进行修改替换,接着将 word 转 pdf。参考
http://stackoverflow.com/questions/16867594/find-and-replace-text-in-docx-file-python
http://stackoverflow.com/questions/6011115/doc-to-pdf-using-python
四、如何使用python将pdf文件改成word文件
用软件,使用之后然后有两种结果
1、转化出来的就是想要的word,这种情况最理想了;
2、转化出来的word上都是图片,需要上网找“ABBYY finereader v9”一类的文字识别软件。ABBYY finereader v9是我见过的最强大的PDF(图片格式或者是扫描件)转word的软件。它是一款OCR软件,界面比较简洁明,9.0和以上版本有简体中文版的,支持100语言的识别,特别是混合多种语言识别效果也非常好:安装完毕之后,首先把图片上的文字识别出来,然后再对照图片把识别错误的地方改过来,这样就实现了,从JPEG文件到word的格式转换。
这一类的软件有PDF To Word Converter、Solid converter PDF等,大致过程都是一样的。
也可以在线联网将PDF转为word文件,但是存在泄密的可能性,因此不建议使用。
五、python输出word内容
程序导出word文档的方法将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。转换效果也不错,使用方法非常简单。
\# 安装sudo apt-get install unoconv\# 使用unoconv -f pdf *.odtunoconv -f doc *.odtunoconv -f html *.odt缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
2. python-docx功能:1.python-docx是一个可以读写word文档的python库。使用方法:1.获取网页中的数据,使用python手动排版添加到word文档中。
from docx import Documentfrom docx.shared import Inchesdocument = Document()document.add_heading('Document Title', 0)p = document.add_paragraph('A plain paragraph having some ')p.add_run('bold').bold = Truep.add_run(' and some ')p.add_run('italic.').italic = Truedocument.add_heading('Heading, level 1', level=1)document.add_paragraph('Intense quote', style='IntenseQuote')document.add_paragraph('first item in unordered list', style='ListBullet')document.add_paragraph('first item in ordered list', style='ListNumber')document.add_picture('monty-truth.png', width=Inches(1.25))table = document.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Qty'hdr_cells[1].text = 'Id'hdr_cells[2].text = 'Desc'for item in recordset:row_cells = table.add_row().cellsrow_cells[0].text = str(item.qty)row_cells[1].text = str(item.id)row_cells[2].text = item.descdocument.add_page_break()document.save('demo.docx')from docx import Documentfrom docx.shared import Inchesdocument = Document()for row in range(9):t = document.add_table(rows=1,cols=1,style = 'Table Grid')t.autofit = False #很重要!w = float(row) / 2.0t.columns[0].width = Inches(w)document.save('table-step.docx')缺点:1.功能非常弱。有很多限制比如不支持模板等,只能生成简单格式的word文档。
程序导出PDF文档方法1.pdfkit功能:1.wkhtmltopdf主要用于HTML生成PDF。2.pdfkit是基于wkhtmltopdf的python封装,支持URL,本地文件,文本内容到PDF的转换,其最终还是调用wkhtmltopdf命令。
是目前接触到的python生成pdf效果较好的。优点:1.wkhtmltopdf:利用webkit内核将HTML转为PDFwebkit是一个高效、开源的浏览器内核,包括Chrome和Safari在内的浏览器都使用了这个内核。
Chrome打印当前网页的功能,其中有一个选项就是直接“保存为 PDF”。2.wkhtmltopdf使用webkit内核的PDF渲染引擎来将HTML页面转换为PDF。
高保真,转换质量很好,且使用非常简单。使用方法:\# 安装pip install pdfkit\# 使用import pdfkitpdfkit.from_url('', 'out.pdf')pdfkit.from_file('test.html', 'out.pdf')pdfkit.from_string('Hello!', 'out.pdf')缺点:1.对使用echarts,highcharts这样的js代码生成的图标无法转换为pdf(因为它的功能主要是将html转换为pdf,而不是将js转换为pdf)。
对于纯静态页面的转换效果还是不错的。2.其他其他生成pdf的插件还有:weasyprint,reportlab,PyPDF2等,经简单试验都不如pdfkit效果好,且有些用法复杂。
六、如何使用python将pdf文件改成word文件
用软件,使用之后然后有两种结果 1、转化出来的就是想要的word,这种情况最理想了; 2、转化出来的word上都是图片,需要上网找“ABBYY finereader v9”一类的文字识别软件。
ABBYY finereader v9是我见过的最强大的PDF(图片格式或者是扫描件)转word的软件。它是一款OCR软件,界面比较简洁明,9.0和以上版本有简体中文版的,支持100语言的识别,特别是混合多种语言识别效果也非常好:安装完毕之后,首先把图片上的文字识别出来,然后再对照图片把识别错误的地方改过来,这样就实现了,从JPEG文件到word的格式转换。
这一类的软件有PDF To Word Converter、Solid converter PDF等,大致过程都是一样的。也可以在线联网将PDF转为word文件,但是存在泄密的可能性,因此不建议使用。
转载请注明出处51数据库 » pythonwordpdf无损
优酷土豆乐视