
文章图片
reportlab是Python的一个标准库 , 可以画图、画表格、编辑文字 , 最后可以输出PDF格式 。 它的逻辑和编辑一个word文档或者PPT很像 。 有两种方法:
1)建立一个空白文档 , 然后在上面写文字、画图等;
2)建立一个空白list , 以填充表格的形式插入各种文本框、图片等 , 最后生成PDF文档 。
因为需要产生一份给用户看的报告 , 里面需要插入图片、表格等 , 所以采用的是第二种方法 。
安装第三方库reportlab输入Python的第三方库 , 使用前需要先安装:pip install reportlab
模块导入提前导入相关内容 , 并且注册字体 。 (注册字体前需要先准备好字体文件)
from reportlab.pdfbase import pdfmetrics # 注册字体
from reportlab.pdfbase.ttfonts import TTFont # 字体类
from reportlab.platypus import Table SimpleDocTemplate Paragraph Image # 报告内容相关类
from reportlab.lib.pagesizes import letter # 页面的标志尺寸(8.5*inch 11*inch)
from reportlab.lib.styles import getSampleStyleSheet # 文本样式
from reportlab.lib import colors # 颜色模块
from reportlab.graphics.charts.barcharts import VerticalBarChart # 图表类
from reportlab.graphics.charts.legends import Legend # 图例类
from reportlab.graphics.shapes import Drawing # 绘图工具
from reportlab.lib.units import cm # 单位:cm
# 注册字体(提前准备好字体文件 如果同一个文件需要多种字体可以注册多个)
pdfmetrics.registerFont(TTFont('SimSun' 'SimSun.ttf'))
封装不同内容对应的函数创建一个Graphs类 , 通过不同的静态方法提供不同的报告内容 , 包括:标题、普通段落、图片、表格和图表 。 函数中的相关数据目前绝大多数都是固定值 , 可以根据情况自行设置成相关参数 。
class Graphs:
# 绘制标题
@staticmethod
def draw_title(title: str):
# 获取所有样式表
style = getSampleStyleSheet()
# 拿到标题样式
ct = style['Heading1'
# 单独设置样式相关属性
ct.fontName = 'SimSun' # 字体名
ct.fontSize = 18 # 字体大小
- Python|家庭电视沦为摆设,过来人吐槽:食之无味,弃之可惜,看着头疼
- Python|换机不要着急,12月还有10款旗舰手机,都是值得期待的重头戏
- Python|一图看懂NUC,NUC家族有史以来最强大的工作站主机!
- Python|双12最值得入手的轻薄本来了?12代酷睿i7+高刷OLED屏,仅6099元
- Python|科普类短视频,真的在传播科学知识吗?还是在收割流量?
- 超多人推荐的手机APP|4款不花钱没广告的手机app,内容绝对干货
- 平时给大家分享黑科技软件时|6款轻量级软件分享,莫错过,直接上干货
- Python|用python画漂亮的网状几何图形
- Python|华为手机连续发力:鸿蒙OS3.0再次尝鲜招募,官翻机也有新变化
- excel|用python画什么倾斜的四角宝塔形状
