def Polyline(ctx,page,i): x,y = page.cmds[i].args[0] x,y = mfdraw.convcoords(page,ctx,x,y) ctx.move_to(x,y) print i,'Polyline: ',page.cmds[i].args[0] PolylineTo(ctx,page,i) mfdraw.StrokePath(ctx,page,i)
def Pie(ctx,page,i): l,t,r,b,xs,ys,xe,ye = page.cmds[i].args xc,yc = mfdraw.convcoords(page,ctx,(l+r)/2.,(t+b)/2.) print 'Pie:',xc,yc Arc(ctx,page,i) ctx.line_to(xc,yc) ctx.close_path() mfdraw.FillPathPreserve(ctx,page,i) mfdraw.StrokePath(ctx,page,i)
def Polygone(ctx,page,i): x,y = page.cmds[i].args[0] x,y = mfdraw.convcoords(page,ctx,x,y) ctx.move_to(x,y) for j in range(len(page.cmds[i].args)): x,y = page.cmds[i].args[j] x,y = mfdraw.convcoords(page,ctx,x,y) ctx.line_to(x,y) print i,'Polygone: ',page.cmds[i].args mfdraw.FillPath(ctx,page,i) mfdraw.StrokePath(ctx,page,i)
def ArcTo(ctx,page,i): l,t,r,b,xs,ys,xe,ye = page.cmds[i].args xc,yc = mfdraw.convcoords(page,ctx,(l+r)/2.,(t+b)/2.) dx = math.fabs(r-l) dy = math.fabs(b-t) ang1 = math.atan2((ys-yc),(xs-xc)) ang2 = math.atan2((ye-yc),(xe-xc)) ctx.move_to(xc,yc) ctx.save() ctx.translate(xc,yc) ctx.scale(dx/2., dy/2.) ctx.arc_negative(0.,0.,1.,ang1,ang2) ctx.restore() print 'Arc:',xc,yc,dx,dy,ang1,ang2 mfdraw.StrokePath(ctx,page,i)
def PolyPolygone(ctx,page,i): aPolyCounts = page.cmds[i].args[0] aptl = page.cmds[i].args[1] shift = 0 for k in range(len(aPolyCounts)): ## number of polygones x,y = aptl[shift] x,y = mfdraw.convcoords(page,ctx,x,y) ctx.move_to(x,y) for j in range(aPolyCounts[k]-1): ## number of gones for i-th polygone x,y = aptl[j+1+shift] x,y = mfdraw.convcoords(page,ctx,x,y) ctx.line_to(x,y) shift+=aPolyCounts[k] print i,'PolyPolygone: ',k,shift mfdraw.FillPath(ctx,page,i) mfdraw.StrokePath(ctx,page,i)
def Chord(ctx,page,i): Arc(ctx,page,i) ctx.close_path() mfdraw.FillPathPreserve(ctx,page,i) mfdraw.StrokePath(ctx,page,i)