Hola, esto del control de impresora, me recuerda mis comienzos con las viejas matriciales, en DOS que no tenian modo grafico, y habia que programar "a mano" byte por byte para formar el caracter... se acuerdan los argentinos cuando teniamos por monedas los "australes"... ahora seria muy simple, en ese momento era un caracter generado, o escribir la "A" hacer un retroceso y sobreescribir "="

bueno, eso me sirvio para implementar y entender como funcionan las impresoras seriales
lo que hice, fue controlarla en Visual Basic, por el puerto, luego lo adapte a Picbasic, que es casi directo (las tramas a enviar, no los codigos

)
como ejemplo
'*****************************************************************
ENCABEZADO:
gosub linea ' imprime un renglon de asteriscos
serout portb.0,6,[13,10,27,121,1,27,119,1,27,122,1," LAVADERO ",13,10," * Solis * ",13,10]
' LETRAS DOBLE LARGO LETRAS DOBLE ancho LETRAS sombreadas
serout portb.0,6,[27,122,0,27,119,0,27,121,0,"* Cel. 03465 15593145 *",13,10] ' cierre LETRAS sombreadas
' cierre LETRAS DOBLE ancho cierre LETRAS DOBLE LARGO
gosub linea ' imprime un renglon de asteriscos
RETURN
'*******************************************************************************
'transmite a 9600 sin max 232 'WRITE Address,Value
'leer 'leer el estado del contador en eeprom, incrementar en uno y grabar
TICKET: '6 ES EL MODE, SERIA N9600
READ 1,UNIDAD ;CARGO EL ESTADO DEL CONTADOR
serout portb.0,6,[13,10,13,10,27,121,1," Ticket Nro. ",27,119,1]' dos renglones en blanco
for T=4 to 0 step -1 ' toma cada digito del contador,lo pasa a ASCII y lo imprime
serout portb.0,6,[UNIDAD DIG T + 48] ' para colocar tambien los ceros a la izquierda
next T
serout portb.0,6,[13,10,27,119,0,27,121,0,13,10]
' cierre LETRAS DOBLE ancho cierre LETRAS DOBLE LARGO
gosub linea ' imprime un renglon de asteriscos
serout portb.0,6,[13,10," Conserve este ticket",13,10," sera requerido en",13,10," Porteria",13,10]
serout portb.0,6,[27,122,1," GRACIAS! ",13,10,27,122,0] ' LETRAS sombreadas
gosub linea ' imprime un renglon de asteriscos
serout portb.0,6,[13,10,"COMPROBANTE DE LAVADO",13,10," PARA SU CONTROL ",13,10," VALOR 8 PESOS",13,10]
GOSUB ENCABEZADO
gosub linea ' imprime un renglon de asteriscos
RENGLON:
FOR T=0 TO 8 '12 4 RENGLONES EN BLANCO
serout portb.0,6,[13,10] ' un renglon en blanco
NEXT T
T=0es a modo de ejemplo, y lo copy/paste de un programa mas extenso... y generaba un ticket
los numeros, corresponden al tipo de impresora, mirar en su manual, hay codigos que estan estandarizados... 10,13, 27 y otros pueden o no ser iguales....
espero les sirva
Un abrazo!
Feliz año
Norberto