he Szymon! a bezierPath object is not made to be editable. One way could be jumpt to a glyph object. or do a detour by cutting the path in four quarters and draw them seperatly # create a bezierPath path = BezierPath() # add text to the path with a font and fontSize path.text("P", font="Helvetica-Bold", fontSize=778) # move the page a bit translate(100, 100) # get the bounds of the path minx, miny, maxx, maxy = path.bounds() # calculate the width, height of the bounds # we only need half the width, height w = (maxx-minx) * .5 h = (maxy-miny) * .5 # create a bezierPath and add a quarter bottomLeft = BezierPath() bottomLeft.rect(minx, miny, w, h) # create a bezierPath and add a quarter bottomRight = BezierPath() bottomRight.rect(minx + w, miny, w, h) # create a bezierPath and add a quarter topLeft = BezierPath() topLeft.rect(minx, miny + h, w, h) # create a bezierPath and add a quarter topRight = BezierPath() topRight.rect(minx + w, miny + h, w, h) # only keep the path when both of the them are filled bottomLeft = bottomLeft & path bottomRight = bottomRight & path topLeft = topLeft & path topRight = topRight & path # start drawing with savedState(): translate(w, h) skew(-30, 0) translate(-w, -h) fill(1, 0, 0) drawPath(bottomLeft) fill(1, 1, 0) drawPath(bottomRight) fill(0, 1, 0) drawPath(topLeft) fill(0, 1, 1) drawPath(topRight)