文章图片
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|选手机看口碑!这五款机型出现在10月好评榜单中,你中意哪一款?
- Python|Windows 10 为什么不内置可以解压rar等的软件?
- Python|30系显卡跌至白菜价!RTX 3060Ti跌破2000元
- Python|intel-13700K装机推荐,游戏创作双管高能,AMD:换我更省钱
- Python|EXCEL必备基础知识及技能
- 软件|【干货】CAN报文固定协议转发
- C+,Python,Java,选择一个C位出道的话,你想pick谁?
- Python|华为鸿蒙斥巨资最新打造的python视频教程!整整400集,建议收藏
- Python|苹果公司赠送的一个“赠品”,别再随便丢了,小小一个能卖145元
- 编程|胡渊鸣:import一个“太极”库 让Python代码提速100倍!