python3html怎么转换成pdf(Python实现html转换为pdf报告生成pdf报告功能示例)
python3html怎么转换成pdf
Python实现html转换为pdf报告生成pdf报告功能示例本文实例讲述了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、//www.zzvips.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、http://www.zzvips.com/article/172648.html
希望本文所述对大家python程序设计有所帮助。
原文链接:https://www.cnblogs.com/shengulong/p/7994082.html
- python常见知识点整理(Python基础知识点 初识Python.md)
- python实战方法(Python常用特殊方法实例总结)
- python的pickle用法(Python multiprocess pool模块报错pickling error问题解决方法分析)
- python怎么导入xlsx(用Python将结果保存为xlsx的方法)
- python可视化界面实现管理系统(python面向对象实现名片管理系统文件版)
- python编程开发环境步骤(python开发准备工作之配置虚拟环境非常重要)
- python调用elasticsearch(Python-ElasticSearch搜索查询的讲解)
- 2021-10-07 00:38:09
- python flask部署实例(Python Flask框架扩展操作示例)
- python的opencv图片识别(OpenCV-Python 摄像头实时检测人脸代码实例)
- python浪漫表白源码(python七夕浪漫表白源码)
- opencv抠出边缘检测的图形(python opencv实现图像边缘检测)
- python中字典的主要特点(Python里字典的基本用法包括嵌套字典)
- python如何编写一个用户登录系统(Python实现的登录验证系统完整案例基于搭建的MVC框架)
- python企业微信录信息(python获取微信企业号打卡数据并生成windows计划任务)
- python大数据学习顺序(Python如何处理大数据?3个技巧效率提升攻略推荐)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
- 44岁夏雨演谋女郎爸,大其24岁却看不出,互动不怕袁泉吃醋(44岁夏雨演谋女郎爸)
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
热门推荐
- C#验证身份证号码
- python json转换字符串(python3 json数据格式的转换dumps/loads的使用、dict to str/str to dict、json字符串/字典)
- python实现列表删除重复元素(Python代码实现删除一个list里面重复元素的方法)
- laravel数据库管理教程(Laravel基础_关于view共享数据的示例讲解)
- python随机生成时间戳(python时间序列按频率生成日期的方法)
- 云数据库navicat连不上(Navicat Premium15连接云服务器中的数据库问题及遇到坑)
- php中变量定义规则(php use和include区别总结)
- 阿里云的自带mysql怎么开启(阿里云云服务器mysql密码找回的方法)
- 如何用python做一个弹窗(python实现祝福弹窗效果)
- ftp上传工具使用方法(CuteFTP多线程FTP上传下载工具功能介绍)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9