绘制矢量图
先设置setStrokeColorRGB和setFillColorRGB,再进行绘制。
#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
#设置绘画开始的位置
def hello(c):
#设置描边色
c.setStrokeColorRGB(0, 0, 1.0)
#设置填充色
c.setFillColorRGB(1,0,1)
# draw some lines
c.line(0.1*inch, 0.1*inch, 0.1*inch, 1.7*inch)
c.line(0.1*inch, 0.1*inch, 1*inch, 0.1*inch)
# draw a rectangle
c.rect(0.2*inch, 0.2*inch, 1*inch, 1.5*inch, fill=1)
#定义要生成的pdf的名称
c=canvas.Canvas("hello.pdf")
#调用函数进行绘画,并将canvas对象作为参数传递
hello(c)
#showPage函数:保存当前页的canvas
c.showPage()
#save函数:保存文件并关闭canvas
c.save()
运行结果:
canvas有很多绘制接口,绘制线、矩形、椭圆、样条曲线等,具体查阅使用手册。混合使用,可以绘制出复杂的矢量图,下图是使用手册中的例子:
绘制位图
#引入所需要的基本包
from reportlab.pdfgen import canvas
from reportlab.lib.units import mm
def drawBitmap(c):
c.drawImage("image.jpg", 5*mm, 5*mm, 62*mm, 88.6*mm)
#定义要生成的pdf的名称
c=canvas.Canvas("image.pdf")
#调用函数生成条形码和二维码,并将canvas对象作为参数传递
drawBitmap(c)
#showPage函数:保存当前页的canvas
c.showPage()
#save函数:保存文件并关闭canvas
c.save()
运行结果: