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

importpdfkit

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 = """

Hello World!"""

pdfkit.from_string(body,'out.pdf')#with --page-size=Legal and --orientation=Landscape

2、再说reporatlab

安装:pip install reportlab

简单使用:

#!/usr/bin/python

from reportlab.pdfgen importcanvasdefhello():

c= canvas.Canvas("helloworld.pdf")

c.drawString(100,100,"Hello,World")

c.showPage()

c.save()

hello()

#!/usr/bin/env python

importsubprocessimportdatetimefrom reportlab.pdfgen importcanvasfrom reportlab.lib.units importinchdefdisk_report():

p= subprocess.Popen("df -h", shell=True, stdout=subprocess.PIPE)#print p.stdout.readlines()

returnp.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 ininput:

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、http://www.cnblogs.com/taceywong/p/5643978.html

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

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

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

6、http://www.cnblogs.com/webRobot/p/6999665.html

以上就是python生成pdf报告、python实现html转换为pdf报告的全部内容。

python pdf报告_python生成pdf报告、python实现html转换为pdf报告相关推荐

  1. python使用fpdf将生成的长字符串手动换行写入pdf

    python使用fpdf将生成的长字符串手动换行写入pdf 目录 python使用fpdf将生成的长字符串手动换行写入pdf #lassocv生成特征系数dataframe

  2. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  3. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  4. 1. 一些截图方法和另存格式的比较(QQ,微信,企业微信,飞书,word,PPT,edge,PrintScreen;svg等);2. 将截图直接转换为PDF并拼接,与插入Word后再转换为PDF的对比

    1. 一些截图方法的比较 1.1. 有时候当某个软件没有导出功能,或者导出功能受限,比如 tableau public,但又需要获取展示出的可视化信息时,就需要用到截图.如果这些截图还要用在正式文档中 ...

  5. python生成ppt报告_python 生成 pptx 分析报告的工具包:reportgen

    reportgen v0.1.8 更新 这段时间,我对 reportgen 进行了大工程量的修改和更新.将之前在各个文章中出现的函数进行了封装,同时也对现有工具包的一些逻辑进行了调整. 1.repor ...

  6. python量化实战_Python与量化投资 从基础到实战.pdf

    作 者 :王小川 出版发行 : 北京:电子工业出版社 , 2018.03 ISBN号 :978-7-121-33857-1 页 数 : 408 原书定价 : 99.00 开本 : 16开 主题词 : ...

  7. 大乐透python预测程序_Python生成随机验证码,大乐透号码

    随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...

  8. python创建窗体_python生成窗口

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 2.python生成目录树上述 cmd 方式虽然可以生成目录树,但是并不美观,让 ...

  9. python输出姓名_Python生成随机不重复姓名昵称

    姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...

最新文章

  1. vs2017 编码约定——.editorconfig文件
  2. 关系型数据库 和 非关系型数据对比 以及 MySQL与Oracle对比
  3. RxPermission原理解析
  4. 【Mongodb】MongoDB
  5. 网站高并发及高并发架构详解
  6. Ribbon-3使用配置文件自定义Ribbon Client
  7. MFC六大核心机制之二:运行时类型识别(RTTI)
  8. Linux-文件查找
  9. android 页面标题,Android v4包下的PagerTitleStrip,ViewPager的页面标题
  10. C/C++编程笔记:输入输出的优化,你还为思路正确却TLE而烦恼吗?
  11. UI基础设计规范,确定不了解一下?
  12. iphonex屏幕出现一条绿线_关于对 iPhone 11、iPhone X? 采用的 Liquid 视网膜显示屏的误区,在此说明。...
  13. MantisBT安装部署(XAMPP)邮件配置 中文配置
  14. matlab分析矩阵与线性变换
  15. lnmp mysql 命令_LNMP状态管理命令
  16. 6.1离散时间马尔科夫链
  17. 基于51单片机的温度采集系统
  18. 4月编程排行榜出啦~速看新变化~
  19. python scrapy之模拟浏览器的随机更换
  20. 解剖caffe mode:Blobs, Layers和Nets

热门文章

  1. GitLab 配置 OAuth2 实现第三方登录,简直太方便了!
  2. 5种全局ID生成方式、优缺点及改进方案
  3. amoeba实现mysql主从读写分离_利用Amoeba实现MySQL主从复制和读写分离
  4. android cardview控件,CardView控件的使用方式
  5. 程序设计与算法----动态规划之最长公共子序列
  6. JAVA并发编程的基础
  7. 希尔和归并排序的异同
  8. oracle锁表与解表
  9. 前端知识点总结——VUE
  10. 【神经网络与深度学习】卷积神经网络在自然语言处理的应用