python生成pdf报告python实现html转换为pdf报告

沧海一粟,何以久远      2022-02-07     412

关键词:

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、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

selenium+python—html生成报告代码

Python自动化测试生成HTML测试报告 HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,他生成易于使用的HTML测试报告。Ubuntu放置位置:输入Python3命令进入Python交互模式,通过importsys以及sys.path可以查看本机Python的安装目... 查看详情

python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

前言1.环境准备:python3.6requestsxlrdopenpyxlHTMLTestRunner_api2.目前实现的功能:封装requests请求方法在excel填写接口请求参数运行完后,重新生成一个excel报告,结果写入excel用unittest+ddt数据驱动模式执行HTMLTestRunner生成可视化的html报告... 查看详情

python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

前言1.环境准备:python3.6requestsxlrdopenpyxlHTMLTestRunner_api2.目前实现的功能:封装requests请求方法在excel填写接口请求参数运行完后,重新生成一个excel报告,结果写入excel用unittest+ddt数据驱动模式执行HTMLTestRunner生成可视化的html报告... 查看详情

Python:从 .html 创建自动化的、严格设计的多页 .pdf 报告

】Python:从.html创建自动化的、严格设计的多页.pdf报告【英文标题】:Python:Createautomatedstrictly-designedmulti-page.pdfreportfrom.html【发布时间】:2017-06-2419:06:20【问题描述】:有哪些好的基于Python的选项可以从.html创建严格设计的.pdf报... 查看详情

python生成图文并茂的pdf报告(代码片段)

reportlab是Python的一个标准库,可以画图、画表格、编辑文字,最后可以输出PDF格式。它的逻辑和编辑一个word文档或者PPT很像。有两种方法:1)建立一个空白文档,然后在上面写文字、画图等;2)建立... 查看详情

python生成图文并茂的pdf报告(代码片段)

reportlab是Python的一个标准库,可以画图、画表格、编辑文字,最后可以输出PDF格式。它的逻辑和编辑一个word文档或者PPT很像。有两种方法:1)建立一个空白文档,然后在上面写文字、画图等;2)建立... 查看详情

selenium(python)生成html测试报告

由于Python3已经不支持HTMLTestRunner了,无论是PyCharm还是pip都无法安装成功,所以只能去https://pypi.python.org/pypi/HTMLTestRunner手动下载了,把HTMLTestRunner.py文件放到Python3安装目录下的Lib文件夹里面;还有一个地方需要注意的是,Python3已... 查看详情

Python - 使用数据库中的图表创建 pdf 报告的过程是啥?

】Python-使用数据库中的图表创建pdf报告的过程是啥?【英文标题】:Python-WhatistheprocesstocreatepdfreportswithchartsfromaDB?Python-使用数据库中的图表创建pdf报告的过程是什么?【发布时间】:2019-01-2216:28:51【问题描述】:我有一个由调... 查看详情

python3和htmltestrunner生成html测试报告

 1、测试环境:Python3.5+unittest+HTMLTestRunner 2、下载HTMLTestRunner.py文件  下载地址http://tungwaiyip.info/software/HTMLTestRunner.html  右键单击保存至本地,放在Python的安装目录Lib文件夹下(我本地放在本目录下:D:setupPython35Lib)&n... 查看详情

生成html测试报告

1.引入HTMLTestRunner下载HTMLTestRunner.py从http://tungwaiyip.info/software/HTMLTestRunner.html将下载的HTMLTestRunner.py存放在python的bin路径下HTMLTestRunner.py是基于python2.*开发的,我们现在用的是python3.*,因此需要修改该文件。2.修改HTMLTestRu 查看详情

Django/Python:使用正确的语言生成 pdf

】Django/Python:使用正确的语言生成pdf【英文标题】:Django/Python:generatepdfwiththeproperlanguage【发布时间】:2012-12-0617:11:05【问题描述】:我在我的Django应用程序中使用Pisa/xhtml2pdf从HTML源生成pdf。那就是:我生成了使用所有“打印”... 查看详情

如何从 Python 中的 HTML / CSS(包括图像)源生成 PDF? [关闭]

】如何从Python中的HTML/CSS(包括图像)源生成PDF?[关闭]【英文标题】:HowtogenerateaPDFfromanHTML/CSS(includingimages)sourceinPython?[closed]【发布时间】:2010-10-2115:36:09【问题描述】:假设我有一个HTML/CSS页面,其中包含一些图像,我想用Pyth... 查看详情

关于python-生成htmltestrunner测试报告

一、HTMLTestRunner是Python标准库的unittest模块的一个扩展,它可以生成HTML的测试报告。 1.首先要下HTMLTestRunner.py文件,将下载的文件放入…pythonLib目录下  2.在IDLE里引入HTMLTestRunner包,如果没有报错(红),则说明添加成... 查看详情

python实现pdf扫描件生成docx或excel功能

参考技术A应项目需求需要获取PDF扫描文件的内容,但寻遍整个网络能达到这种功能的产品,都要会员充值。苦于囊中羞涩也只好编写功能代码来实现了。如PDF中表格图片图-1效果生成图-2整个步骤为:读取PDF文件->生成图片->... 查看详情

使用htmltestrunner模块生成html格式的测试报告文件

1.下载HTMLTestRunner.pyHTMLTestRunner是Python标准库的unittest模块的一个扩展。它生成易于使用的HTML测试报告。HTMLTestRunner是在BSD许可证下发布。下载地址:http://tungwaiyip.info/software/HTMLTestRunner.htmlWindows:将下载的文件放入Python34的安装目... 查看详情

在python中生成多个pdf报告(代码片段)

我似乎无法找到任何以前的问题,教程或YouTube视频来帮助解决我的问题。该项目正在创建500个随机角色,将该信息导出到csv,然后填写可填写的PDF表单。一旦我启动并运行,我就可以将其交给HR来帮助他们填写表格。我能够创建... 查看详情

python接口自动化测试二十五:执行所有用例,并生成html测试报告

    import requestsimport unittestclass TestQQ(unittest.TestCase):    ‘‘‘测试QQ号接口‘‘‘      #此注释将展示到测试报告的测试组类 &nb 查看详情

selenium2+python自动化54-unittest生成测试报告(htmltestrunner)

前言批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner1.这... 查看详情