python reportlab教程,
大家好,本篇文章主要讲的是大蟒使用画幅好画生成可移植文档格式文件的扩展名(可移植文档格式的缩写)实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
目录
简介功能点预览完整代码使用场景1:生成文件使用场景2:网(烧瓶)总结
Intro
项目中遇到需要导出统计报表等业务时,通常需要可移植文档格式文件的扩展名(可移植文档格式的缩写)格式python。com .中比较有名的就是报告实验室.
这边通过几个小演示快速演示常用api。所有功能点源码都在使用场景。
一句话了解:跟钢性铸铁差不多,就是不断地对每样东西设置风格,然后把风格和内容绑定。
功能点
生成
文件: 先SimpleDocTemplate(xxx.pdf ),然后体格
流文件:先木卫一.字节序()生成句柄,然后同理
曲线图线图
饼图馅饼
文字段落
字体大小字体大小推荐14
加粗bxxx/b使用的是超文本标记语言的方式,字体自动实现
首行缩进首行缩进推荐2 *字体大小
主要的行间距推荐1.5 *字体大小
字体名默认中文会变成
下载.TrueType字型文件字体文件至少注射毒品个【常规】【加粗】
注册字体pdfmetrics.registerFont【常规】请用原名,方便加粗的实现
注册字体库registerFontFamily("HanSans ",normal="HanSans ",bold="HanSans-Bold ")
其他美国石油学会(美国石油协会)自行摸索,但基本离不开钢性铸铁那种理念。官网并没有常规文档的那种钔模式,而是完全写在了可移植文档格式文件的扩展名(可移植文档格式的缩写)里,玩家需要自己去可移植文档格式文件的扩展名(可移植文档格式的缩写)里像查字典一样去找。
预览
完整代码
导入操作系统
从报告实验室。图形。图表。线图导入线图
从报告实验室。图形。图表。馅饼图表导入饼图
从reportlab.graphics.shapes导入绘图
从报告实验室导入颜色
从reportlab.lib.styles导入段落样式
从reportlab.pdfbase导入pdf计量学
来自reportlab.pdfbase.pdfmetrics导入寄存器方特家族
从报告实验室。pdf基础。TTFont导入TT字体
摘自鸭嘴兽导入段落
home=os.path.expanduser(~ )
尝试:
pdf度量标准。注册字体(TT字体(汉sans ,f"{ home }/.字体/SourceHanSansCN-正常。TTF ))
pdf度量标准。注册字体(TT字体( Han sans-Bold ,f"{ home }/.fonts/SourceHanSansCN-Bold.ttf ))
registerFontFamily(HanSans ,normal=HanSans ,bold=HanSans-Bold )
FONT_NAME=HanSans
例外:
FONT _ NAME=" Helvetica "
MyCSS:类
h3=ParagraphStyle(name=h3 ,fontName=FONT_NAME,fontSize=14,leading=21,alignment=1)
p=ParagraphStyle(name=p ,fontName=FONT_NAME,fontSize=12,leading=18,firstLineIndent=24)
PiiPdf:级
@classmethod
def doH3(cls,text: str):
返回段落(text,MyCSS.h3)
@classmethod
def doP(cls,text: str):
返回段落(text,MyCSS.p)
@classmethod
def doLine(cls):
绘图=绘图(500,220)
line=LinePlot()
line.x=50
line.y=50
line.height=125
线条宽度=300
line.lines[0].strokeColor=colors.blue
线条,线条.strokeColor=colors.red
第二行strokeColor=colors.green
线。data=[(0,50),(100,100),(200,200),(250,210),(300,300),(400,800))]
绘图.添加(线条)
返回图纸
@classmethod
def doChart(cls,数据):
绘图=绘图(宽度=500,高度=200)
pie=Pie()
pie.x=150
pie.y=65
pie.sideLabels=False
派。标签=[abcdefg中的字母对字母]
pie.data=数据#列表(范围(15,105,15))
pie.slices.strokeWidth=0.5
绘图.添加(饼图)
返回图纸
使用场景1:生成文件
doc=SimpleDocTemplate(你好。pdf’)
p=PiiPdf()
文档构建([
p.doH3(b水泵能源消耗简报/b ),
p。doh 3( b 2021。12 .1 ~ 2021 .12 .31/b’),
p.doP(该月接入能耗管理系统水泵系统xx套,水泵x台。),
p.doP(本月最大总功率xx千瓦,环比上月增加xx %,平均功率xx千瓦;环比上月增加" xx %。"),
P.doP(功耗趋势图:),
p.doLine(),
P.doP(本月总能耗xxx千瓦时,环比增长xx%。),
P.doP(配水泵能耗统计:),
p.doChart(列表(范围(15,105,20))),
P.doP(能耗最高的泵是xxx,比上月增加xxx千瓦时,xx%。),
])
使用场景2:web(flask)
@Controller.get(/api/pdf )
def api_hub_energy_pdf():
缓冲区=io。BytesIO()#关注一个IO
doc=SimpleDocTemplate(缓冲区)
p=PiiPdf()
文档构建([
p . doh 3( b 2021 . 12 . 1 ~ 2021 . 12 . 31/b ),
])
buffer.seek(0)
返回响应(作为# io返回)
缓冲区,
mimetype=应用程序/pdf ,
headers={ Content-disposition : inline;filename=test.pdf},
)
总结
关于python使用reportlab生成pdf实例的这篇文章到此结束。有关python reportlab生成pdf的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。