最近遇到一个需求是要生成一个PDF报表,网上找了几个库,最终使用了reportlab,这篇文章主要记录使用代码。
安装
使用pip直接安装
1 | pip install reportlab |
使用
1 | # -*- coding: utf-8 -*- |
关于代码的一些说明:
我个人代码暂未贴出,上面代码为参考博客代码:https://blog.csdn.net/jtscript/article/details/45217697
如果你安装好库直接运行代码是不能成功的,因为这里分中文语言包你需要下载一下,中文语言包下载地址我已经帮你找好了:https://github.com/chenqing/ng-mini/blob/master/font/msyh.ttf
下载语言包之后直接放到和代码同一目录即可。
又有小伙伴疑惑了,上面代码中的那些para
,font
等,具体还有那些怎么获取呢?
我们可以看下源码:
1 | class Paragraph(Flowable): |
从源码中我们得知Paragraph
可以输入XML类的标签。重点关注下img
标签哦!
还有代码中一直说的reportlab-userguide.pdf
是指reportlab
的指导文件,我也已经帮你找到了:
https://www.reportlab.com/docs/reportlab-userguide.pdf
我遇到的需求基本上上面的代码改造下就能完成,不过要有一个超链接功能。下面是增加超链接的一个代码:
1 | text = "<link href='https://www.baidu.com/' color='blue'><font face="msyh" fontsize=7>百度</font></super></link>" |
注意:凡是用到中文的地方都要指定文字语言。
其他参考文章: