from pyx import *
textpath = text.text(0, 0, r"\PyX").textpath().reversed()
decotext = r"\PyX{} is fun! "*50
scale = text.text(0, 0, decotext).width/textpath.arclen()
c = canvas.canvas()
c.draw(textpath, [trafo.scale(scale),
deco.filled([color.gray(0.5)]),
deco.curvedtext(decotext)])
c