码农的世界python源码大全reportlab教程和源码大全

Python reportlab库之Widget(含demo)

2019-02-19  本文已影响6人  iCloudEnd

写了好几篇关于ReportLib Graphics的文章,Drawings一致都是“纯数据”模式,没有任何实际进行的代码。事实上,这么设计有极大好处的,基于Drawings我们可以轻松的实现代码的可以执行性。具体的工作都交给相关Renderer来实现。
作为一个合格开发者要懂得复用,一个好的开源库同样也必须支持复用。widget就是为了这个使命而被设计的。

Widget是构建子shape上的标准模块,任何人都可以创建新的widget,也可以创建相关的widget库。下面是widget的一些特点:

代码

from reportlab.lib import colors
from reportlab.graphics import shapes
from reportlab.graphics import widgetbase
from reportlab.graphics import renderPDF
d = shapes.Drawing(200, 100)
f = widgetbase.Face()
f.skinColor = colors.yellow
f.mood = "sad"
d.add(f)
renderPDF.drawToFile(d, 'face.pdf', 'A Face')

效果图


face demo
上一篇 下一篇

猜你喜欢

热点阅读