Impresión directa al puerto COM se detiene en linea 30...
Hola amigos, tengo una impresora Epson TMU-210 con coneccion al puerto serial que usa el puerto COM1, a ella envio lineas de texto directamente al puerto com, usando C++ Builder 6 (S.O. Windows 2000) con el sgte código:
FILE *fp = fopen("COM1:", "w"); for(DM1->pgQ_Ventas_Det->First();!DM1->pgQ_Ventas_Det->Eof;DM1->pgQ_Ventas_Det->Next()){ .... //------- Imprimir en una linea cantidad, descripion y precio fprintf(fp,"%4.4s %-29.29s %5.6s\n",v_cant,v_desc,v_pu); } //----Corte de papel. fputc(char(27), fp); fputc('m', fp); fclose(fp); Todo Ok, pero cuando son mas de 30 lineas se detiene la impresión en la linea 30 y las demas se pierden, he probado con otros tipos de componentes (CPortLib) y pasa los mismo :confused:. ¡Gracias!. |
¿por que estas seguro que no es un problema de hardware?
|
:) Porque he probado en mas de 10 ordenadores distintos con distintas impresoras del mismo modelo, (en las Samsung Bixolon que usan el puerto LPT no hay problemas).
|
Cita:
Se me ocurre... crear un archivo de texto Código:
linea 1 Código:
copy archivo.txt com1 Saludos. |
Hola!
Estas impresoras en la parte baja tienen un conjunto de DIP-Switch en los cuales puedes definir el tamaño del buffer (creo que solo hay dos tamaños) cuando he tenido de usarlas siempre uso el buffer mas pequeño para que imprima inmediatamente. Por otro lado si la cantidad de datos a imprimir es demasiado debera de usar las lineas de control (DTR -CTS) para controlar via hardware o usa los codigos Xon -Xoff para controlar via software con estos generalmente no hay necesidad de programar nada ya que tu libreria de comunicaciones se hace cargo. Con la lineas de control tal vez tengas que hacer algo de programacion. Si fabricas el cable usa estas conexiones: DB9 PC DB25 Impresora RX 2<-----------2 TX (La impresora nunca va a enviar nada) TX 3----------->3 RX DTR 4-------------6 DST DSR 6-------------20 DTR RTS 7-------------5 CTS CTS 8-------------4 RTS Gnd 5-------------7 Gnd |
Muchas gracias!
Probe con todo pero no funcionó, asi es que ahora se imprime una linea y cierra el puerto y asi cada linea que se envia, hasta ahora funciona.
¡Gracias a todos! Cita:
|
La franja horaria es GMT +2. Ahora son las 14:42:38. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi