您的位置:首页 > 脚本大全 > > 正文

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

更多 时间:2021-10-09 00:24:48 类别:脚本大全 浏览量:2252

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • import pdfkit
  • pdfkit.from_url('http://google.com','out.pdf'
  • pdfkit.from_file('test.html','out.pdf'
  • pdfkit.from_string('hello!','out.pdf')
  • 传递一个url或者文件名列表:

  • ?
  • 1
  • 2
  • pdfkit.from_url(['google.com','yandex.ru','engadget.com'],'out.pdf'
  • pdfkit.from_file(['file1.html','file2.html'],'out.pdf')
  • 传递一个打开的文件:

  • ?
  • 1
  • 2
  • withopen('file.html')asf:
  •   pdfkit.from_file(f,'out.pdf')
  • 如果你想对生成的pdf作进一步处理, 你可以将其读取到一个变量中:

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

  • ?
  • 1
  • pdf=pdfkit.from_url('http://google.com',false)
  • 你可以制定所有的 wkhtmltopdf选项 . 你可以移除选项名字前面的 '--' .如果选项没有值, 使用none, falseor*作为字典值:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 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 文件。

  • ?
  • 1
  • 2
  • 3
  • 4
  • # 单个 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传递任意选项:

  • ?
  • 1
  • 2
  • 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

    安装:

  • ?
  • 1
  • pip install reportlab
  • 简单使用:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • #!/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()
  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • #!/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 PDF HTML
    您可能感兴趣