Ti ho sistemato l'esempio, e ho aggiunto anche un form che puoi editare quello che viene stampato nella griglia così puoi fare le prove dei caratteri.
Nell'esempio c'è un database sqlite, basta che hai installato sqlite3.
Nel file txt che ti ho postato ho fatto un'errore, la funzione Multirect.
PUBLIC SUB MultiRect(w1 AS Float, w2 AS Float, w3 AS Float, w4 AS Float, w5 AS Float, w6 AS Float, w7 AS Float, w8 AS Float, w9 AS Float, w10 AS Float)
IF w1 > 0 THEN ME.Rect($lMargin, $y, w1, $max_y, "")
IF w2 > 0 THEN ME.Rect($lMargin + w1, $y, w2, $max_y, "")
IF w3 > 0 THEN ME.Rect($lMargin + w1 + w2, $y, w3, $max_y, "")
IF w4 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3, $y, w4, $max_y, "")
IF w5 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4, $y, w5, $max_y, "")
IF w6 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5, $y, w6, $max_y, "")
IF w7 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6, $y, w7, $max_y, "")
IF w8 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6 + w7, $y, w8, $max_y, "")
IF w9 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8, $y, w9, $max_y, "")
IF w10 > 0 THEN ME.Rect($lMargin + w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9, $y, w10, $max_y, "")
END