Hola Pablo. Verás, yo también tengo el mismo problema. Tengo una TM-U210 y también utilizo el mismo código que tú para abrir el cajón portamonedas. He intentado imprimir con el objeto TPrinter a través del TCanvas así:char cajon[] = { 27,0,100,250 };
TPrinter pr = Printer();
pr->BeginDoc();
pr->Canvas->TextOut(0,0,cajon);
pr->EndDoc();
El problema de esto, es que el objeto TPrinter no interpreta estos datos como códigos de control, sino como caracteres imprimibles. Por lo tanto, procesa esto y envía sus propios comandos al driver de la impresora.
Estoy bastante liado con esto... Una solución sería comunicarse directamente con el puerto de la impresora; pero C++ Builder no trae ningún componente para comunicaciones por puertos y ya no estan disponibles las funciones inportb y outportb.
Supongo que la única solución que se me ocurre es crear un fichero de texto con los códigos de apertura del cajón y mediante WinExec() utilizar el comando PRINTER del símbolo del sistema para imprimir este fichero de texto.
Si alguien tiene una solución mejor, me gustaría que la expusiera. 