python+reportlab实战:生成一个带表格图片的PDF
来源:互联网 发布:网络装备交易排行榜 编辑:程序博客网 时间:2024/06/05 19:10
环境:
1.win 64
2.py34
3.reportlab3.1.44
目标:
生成一个简单的PDF报表:含图片,表格,文字
# -*- coding: utf-8 -*- from reportlab.pdfgen.canvas import Canvas from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.cidfonts import UnicodeCIDFont pdfmetrics.registerFont(UnicodeCIDFont('STSong-Light'))from reportlab.pdfbase.ttfonts import TTFont pdfmetrics.registerFont(TTFont('msyh', 'msyh.ttf')) from reportlab.lib.styles import getSampleStyleSheetfrom reportlab.lib import colorsfrom reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer,Image,Table,TableStyleimport timedef rpt(): story=[] stylesheet=getSampleStyleSheet() normalStyle = stylesheet['Normal'] curr_date = time.strftime("%Y-%m-%d", time.localtime()) #标题:段落的用法详见reportlab-userguide.pdf中chapter 6 Paragraph rpt_title = '<para autoLeading="off" fontSize=15 align=center><b><font face="msyh">XX项目日报%s</font></b><br/><br/><br/></para>' %(curr_date) story.append(Paragraph(rpt_title,normalStyle)) text = '''<para autoLeading="off" fontSize=8><font face="msyh" >程度定义:</font><br/> <font face="msyh" color=red>1.Blocker:指系统无法执行。</font><br/><font face="msyh" fontsize=7>例如:系统无法启动或退出等</font><br/> <font face="msyh" color=orange>2.Critical:指系统崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。</font><br/> <font face="msyh" fontsize=7>例如:各类崩溃、死机、应用无法启动或退出、按键无响应、整屏花屏、死循环、数据丢失、安装错误等 </font><br/> <font face="msyh" color=darkblue>3.Major:指影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性、性能缺陷</font><br/><font face="msyh" fontsize=7>例如:功能未做、功能实现与需求不一致、功能错误、声音问题、流程不正确、兼容性问题、查询结果不正确、性能不达标等 </font><br/> <font face="msyh" color=royalblue>4.Minor:指界面显示类问题</font><br/> <font face="msyh" fontsize=7>例如:界面错误、边界错误、提示信息错误、翻页错误、兼容性问题、界面样式不统一、别字、排列不整齐,字体不符规范、内容、格式、滚动条等等 </font><br/> <font face="msyh" color=grey>5.Trivial:本状态保留暂时不用</font><br/> </para>''' story.append(Paragraph(text,normalStyle)) text = '<para autoLeading="off" fontSize=9><br/><br/><br/><b><font face="msyh">五、BUGLIST:</font></b><br/></para>' story.append(Paragraph(text,normalStyle)) #图片,用法详见reportlab-userguide.pdf中chapter 9.3 Image img = Image('D:/python/bugstatdev/img/bug_trend.png') img.drawHeight = 20 img.drawWidth = 28 #表格数据:用法详见reportlab-userguide.pdf中chapter 7 Table component_data= [['模块', '', '', '',img,''], ['标记','bug-1','Major','some wrong','open','unresolved'], ['','bug-1','Major','some wrong','closed','fixed'], ] #创建表格对象,并设定各列宽度 component_table = Table(component_data, colWidths=[20,50,50, 150, 90, 90]) #添加表格样式 component_table.setStyle(TableStyle([ ('FONTNAME',(0,0),(-1,-1),'msyh'),#字体 ('FONTSIZE',(0,0),(-1,-1),6),#字体大小 ('SPAN',(0,0),(3,0)),#合并第一行前三列 ('BACKGROUND',(0,0),(-1,0), colors.lightskyblue),#设置第一行背景颜色 ('SPAN',(-1,0),(-2,0)), #合并第一行后两列 ('ALIGN',(-1,0),(-2,0),'RIGHT'),#对齐 ('VALIGN',(-1,0),(-2,0),'MIDDLE'), #对齐 ('LINEBEFORE',(0,0),(0,-1),0.1,colors.grey),#设置表格左边线颜色为灰色,线宽为0.1 ('TEXTCOLOR',(0,1),(-2,-1),colors.royalblue),#设置表格内文字颜色 ('GRID',(0,0),(-1,-1),0.5,colors.red),#设置表格框线为红色,线宽为0.5 ])) story.append(component_table) doc = SimpleDocTemplate('D:/python/bugstatdev/rpt/bug.pdf') doc.build(story)if __name__ == '__main__': rpt()
输出:
1 0
- python+reportlab实战:生成一个带表格图片的PDF
- Python reportLab 生成PDF
- python reportlab 生成pdf (一)
- 使用reportlab生成中文表格pdf
- python reportlab 生成中文PDF范例
- python reportlab 生成pdf (二) SimpleDocTemplate
- 【Python库】ReportLab生成PDF文档
- [reportlab教程4]——python通过reportlab实现图片转换pdf
- iText整合图片和自带表格生成PDF文件(很好用的框架)
- JAVA 生成一个表格的 PDF文件
- [reportlab 教程(5)]——reportlab生成pdf的中文自动换行
- 关于使用reportlab生成中文PDF文档
- 学习利用ReportLab生成PDF报表 -- 图表
- reportlab教程1--第一个pdf生成
- python生成带有表格的图片
- Win7,64位,Python使用reportlab画图并生成为pdf文件
- Python中利用reportlab将目录下所有的文本文件打印成pdf
- 用itext生成带表格的PDF,并显示中文问题
- [boost][2015-04-23] boost linux下的安装 编译 使用
- decorators.xml学习
- 你真的了解:IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的...
- 并查集+最小生成树_HDU_1102
- 什么是NP问题,NP-complete和NP-hard问题.
- python+reportlab实战:生成一个带表格图片的PDF
- linux下文件夹的创建、复制、剪切、重命名、清空和删除
- java中的clone()方法的研究---(3)如何编写正确的clone()方法:基本数据类型
- EditText在不同场景下调用软键盘
- VTK中创建圆柱体
- sys和system 用户、sysdba和sysoper系统权限、sysdba和dba角色的区别
- C++类的成员函数、非成员函数和友元函数
- 马哥linux公开课–Linux运维架构师成长必经之路
- RabbitMQ 安装配置与管理&整理篇