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 29 Python
python中实现定制类的特殊方法总结
Sep 28 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
Django Rest framework之权限的实现示例
Dec 17 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
Jan 09 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
python队列原理及实现方法示例
Nov 27 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 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
windows xp下安装pear
2006/12/02 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
python如何求解两数的最大公约数
2018/09/27 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
空指针到底是什么
2012/08/07 面试题
餐饮部总监岗位职责范文
2014/02/13 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
大学生暑期实践感言
2014/02/26 职场文书
保险内勤岗位职责
2014/04/05 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
综治工作汇报材料
2014/10/27 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
Python读取和写入Excel数据
2022/04/20 Python