Python实现html转换为pdf报告(生成pdf报告)功能示例


Posted in Python onMay 04, 2019

本文实例讲述了Python实现html转换为pdf报告(生成pdf报告)功能。分享给大家供大家参考,具体如下:

1、先说下html转换为pdf:其实支持直接生成,有三个函数pdfkit.f

安装python包:pip Install pdfkit

系统安装wkhtmltopdf:参考 https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf

mac下的wkhtmltopdf: brew install Caskroom/cask/wkhtmltopdf

import pdfkit
pdfkit.from_url('http://google.com','out.pdf')  
pdfkit.from_file('test.html','out.pdf')  
pdfkit.from_string('Hello!','out.pdf')

传递一个url或者文件名列表:

pdfkit.from_url(['google.com','yandex.ru','engadget.com'],'out.pdf')  
pdfkit.from_file(['file1.html','file2.html'],'out.pdf')

传递一个打开的文件:

withopen('file.html')asf:
  pdfkit.from_file(f,'out.pdf')

如果你想对生成的PDF作进一步处理, 你可以将其读取到一个变量中:

# 设置输出文件为False,将结果赋给一个变量

pdf=pdfkit.from_url('http://google.com',False)

你可以制定所有的 wkhtmltopdf选项 . 你可以移除选项名字前面的 '--' .如果选项没有值, 使用None, Falseor*作为字典值:

options={
  'page-size':'Letter',
  'margin-top':'0.75in',
  'margin-right':'0.75in',
  'margin-bottom':'0.75in',
  'margin-left':'0.75in',
  'encoding':"UTF-8",
  'no-outline':None
}  
pdfkit.from_url('http://google.com','out.pdf', options=options)

当你转换文件、或字符串的时候,你可以通过css选项指定扩展的 CSS 文件。

# 单个 CSS 文件
css='example.css'pdfkit.from_file('file.html', options=options, css=css)
# Multiple CSS 
filescss=['example.css','example2.css']  pdfkit.from_file('file.html', options=options, css=css)

你也可以通过你的HTML中的meta tags传递任意选项:

body = """ <html> <head> <meta name="pdfkit-page-size" content="Legal"/> <meta name="pdfkit-orientation" content="Landscape"/> </head> Hello World! </html> """
pdfkit.from_string(body,'out.pdf')#with --page-size=Legal and --orientation=Landscape

2、再说reporatlab

安装:

pip install reportlab

简单使用:

#!/usr/bin/python
from reportlab.pdfgen import canvas
def hello():
  c = canvas.Canvas("helloworld.pdf")
  c.drawString(100,100,"Hello,World")
  c.showPage()
  c.save()
hello()
#!/usr/bin/env python
import subprocess
import datetime
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
def disk_report():
  p = subprocess.Popen("df -h", shell=True, stdout=subprocess.PIPE)
#  print p.stdout.readlines()
  return p.stdout.readlines()
def create_pdf(input, output="disk_report.pdf"):
  now = datetime.datetime.today()
  date = now.strftime("%h %d %Y %H:%M:%S")
  c = canvas.Canvas(output)
  textobject = c.beginText()
  textobject.setTextOrigin(inch, 11*inch)
  textobject.textLines('''Disk Capcity Report: %s''' %date)
  for line in input:
    textobject.textLine(line.strip())
  c.drawText(textobject)
  c.showPage()
  c.save()
report = disk_report()
create_pdf(report)

参考:

1、https://github.com/twtrubiks/python-pdfkit-example

2、//3water.com/article/160638.htm

3、https://bitbucket.org/rptlab/reportlab

4、http://www.reportlab.com/opensource/

5、http://www.reportlab.com/docs/reportlab-userguide.pdf

6、https://3water.com/article/53233.htm

更多Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python3安装Pymongo详细步骤
May 26 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
简单了解python反射机制的一些知识
Jul 13 Python
对python中UDP,socket的使用详解
Aug 22 Python
用python解压分析jar包实例
Jan 16 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
python pygame 开发五子棋双人对弈
May 02 Python
Python实现将HTML转成PDF的方法分析
May 04 #Python
Python第三方库face_recognition在windows上的安装过程
May 03 #Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 #Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 #Python
利用python将图片版PDF转文字版PDF
May 03 #Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 #Python
Python Flask框架模板操作实例分析
May 03 #Python
You might like
3.从实例开始
2006/10/09 PHP
用php解析html的实现代码
2011/08/08 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
this[] 指的是什么内容 讨论
2007/03/24 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
loading动画特效小结
2017/01/22 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
银行实习生的自我评价
2013/12/09 职场文书
协议书怎么写
2014/04/21 职场文书
成立公司计划书
2014/05/07 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
2015年司法所工作总结
2015/04/27 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
Redis 常见使用场景
2021/08/30 Redis
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python