reportlab之canvas

划线

canvas.line(x1,y1,x2,y2)
canvas.line(linelist)

画图形

canvas.grid(xlist,ylist)
canvas.bezier(x1,y1,x2,y2)
canves.arc(x1,y1,x2,y2)
canves.rect(x,y,width,height,stroke=1,fill=0)
canves.ellipase(x1,y1,stroke=1,fill=0)
conves.wedge(x1,y1,startAng,extent,stroke=1,fill=0)
canvas.circle(x_cen,y_cen,r,stroke=1,fill=0)
canvas.roundRect(x,y,width,height,radius,stroke=1,fill=0)

写文本

canvas.drawString(x,y,text)
canvas.drawRightString(x,y,text)
canvas.drawCentredString(x,y,text)

路径

path = canvas.beginpath()
canvas.drawpath(path,stroke=1,fill=0,fillMode=None)
canvas.clipPath(path,stroke=1,fill=0,fillMode=None)

在实际使用中使用beginpath要比drawPath有时候要多一些

图像

画图有两种方法drawInlineImagedrawImage 前者是比较古老的方法

canvas.drawInlineImage(self,image,x,y,width=None,height=None)
canvas.drawImage(self,image,x,y,width==None,height=None,mask=None)

颜色设置

canvas.setFillColorCMYK(c,m,y,k)
canvas.setStrikeColorCMYK(c,m,y,k)
canvas.setFillColorRGB(r,g,b)
canvas.setStrokeColorRGB(r,g,b)
canvas.setFillColor(acolor)
canvas.setStrokeColor(acolor)
canvas.setFillGray(gray)
canvas.setStrokeGray(gray)

字体

canvas.setFont(psfontname,size,leading=None)

图形线条

canvas.setLineWidth(width)
canvas.setLineCap(mode)
canvas.setLineJoin(mode)
canvas.setMiterLimit(limit)
canvas.setDash(self,array=[],phase=0)

修改坐标

canvas.setPageSize(pair)
canvas.transForm(a,b,c,d,e,f)
canvas.translate(dx,dy)
canvas.scale(x,y)
canvas.rotate(theta)
canvas.skew(alpha,beta)

保存版本

可用于保存现在的字体、图像、文字格式等

canvas.saveState()
canvas.restoreState()

你可能感兴趣的:(reportlab之canvas)