Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Impresión directa al puerto COM se detiene en linea 30... (https://www.clubdelphi.com/foros/showthread.php?t=47161)

krlosrp 20-08-2007 18:55:35

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!.

jachguate 20-08-2007 19:00:37

¿por que estas seguro que no es un problema de hardware?

krlosrp 20-08-2007 19:15:23

:) 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).

jachguate 20-08-2007 19:41:24

Cita:

Empezado por krlosrp (Mensaje 224682)
:) 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).

una razón mas para confirmar que puede ser el hardware... quizas el modelo de impresora no soporte imprimir mas de 30 líneas..

Se me ocurre... crear un archivo de texto

Código:

linea 1
linea 2
.
.
.
linea 30
linea 31
linea 32
linea 33

y luego en una consola (cmd):

Código:

copy archivo.txt com1
¿imprime las 33 líneas?

Saludos.

FGarcia 20-08-2007 23:03:23

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

krlosrp 28-08-2007 22:40:39

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:

Empezado por FGarcia (Mensaje 224729)
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



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