ufffff
el código así es un poco complicado de seguir, de todas formas el componente que te ha indicado JOSEPE funciona bien, lo usé en algunos proyectos y siguen funcionando desde hace años. Ahora mismo uso una función que no recuerdo de donde la saqué o si es una modificación de esa misma, te la paso para que la pruebes. Y funcionar, funciona, precisamente está usada también para imprimir cheques y recibos con report builder.
Aquí la adjunto: