我认为在Graphics子模块中还有一些其他模块也值得学习。 尽管我们不会深入探讨“图形”子模块中的每个方面,但我想确保您了解足够多的“图形”子库。 在本文中我们将学习以下内容:
- 形状
- 小部件
- 条形码
形状
形状是我们用来从ReportLab的图形库创建任何输出的构造块。 您创建的每个工程图都是使用形状生成的。 您可以通过采用原始形状并以不同方式将它们组合来创建任何您可以想象的东西。 如果在ReportLab源代码中打开shapes.py,则可以看到可以使用哪些原始形状。 这里是一个清单:
- Circle
- Group
- Ellipse
- Line
- PolyLine
- Polygon
- Rect
- String
- Wedge (pie slice)
下面的示例演示如何创建实体形状:
代码略
在这里,我们创建一个圆形,椭圆形,多边形,矩形和楔形。 Rect类需要x和y坐标以及宽度和高度。 椭圆采用称为cx,cy,rx和ry的参数。 cx / cy值是椭圆中心的x和y位置。 rx / ry值分别是x和y半径。 圆与椭圆类似,因为它也具有cx / cy值,但只需要一个radius参数,即第三个参数。
Wedge类的前三个参数采用x,y和radius。 然后,我们还以度为单位设置楔形的开始和结束角度。 最后,我们进入多边形。 它只需要一系列点,总数就必须是偶数。 原因是这是一系列的x和y坐标,在上面的示例中,我尝试使用空格使其更加明显。 在这种情况下,我们绘制了一个矩形,但是您可以绘制任意数量的点以创建所需的任何多边形。
这是运行代码的结果:
形状属性
所有形状都有两种属性:定义几何形状的属性和定义样式的属性。
大多数形状具有一些必需的几何属性,您必须设置这些属性才能绘制形状。 例如,如果要绘制一个圆,则必须设置圆的中心x / y坐标及其半径。 对于Rect,您需要设置其x / y开始位置,这是它应该开始的左下角位置。 您还必须定义Rect的宽度和高度。
可以在代码中的单独行上设置其他属性,也可以在实例化形状时将其设置为可选参数。 可选属性具有良好的默认设置,因此如果您最终未设置其中的某些属性,则不会有问题。
样式属性如下:
代码略
运行此代码时,应获得以下信息:
如果您希望看到可以更改的属性的完整列表,则可以调用图形的dumpProperties方法。 这是一个例子:
代码略
还有一些其他属性,例如设置破折号或可以用来告诉ReportLab线转弯时应该发生什么的功能,但是这些属性使用的频率很少或几乎不用。 所有实体形状都具有相同的样式属性。
线
ReportLab使您能够绘制线和折线。 这些Line类具有其他形状具有的所有笔触属性,但是由于它们是直线,因此不具有fillColor属性。
让我们看一下如何使用这些类:
代码略
详情参阅 - 亚图跨际