the barcode object has an xo offset which is 18 by default. Try def demo(canvas, x, y, text): c = canvas bc = Code128(text) bc.xo = 0 bc.drawOn(c, x, y) t = c.beginText(x,y-10) t.setFont('Helvetica',6) t.textOut(text) c.drawText(t) draw_grid(c, x, y) -- Robin Becker