Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Tamaño del buffer en impresoras de ticket (https://www.clubdelphi.com/foros/showthread.php?t=78810)

dfarias 18-05-2012 10:04:25

Tamaño del buffer en impresoras de ticket
 
Al finalizar la venta en el tpv al querer sacar las estadisticas de productos vendedido sin son demasiados no sale completo el listado en la impresora. Esto sucede con impresoras de menor calidad que poseen un tamaño de buffer menor. Existe alguna forma de poder gestionar esto desde la aplicacion.

La funcion siguiente es la que utilizo y funciona correctamente en muchas impresoras.
Código Delphi [-]
var 
  Archivo: TextFile; 
begin   
  AssignFile(Archivo, '\\pc\impresora');   
  Rewrite(Archivo);   
  while not qry.eof do    
  begin        
    writeln(Archivo,qry.fieldbyname('Linea').asstring);      
    qry.netx;    
  end;     
  CloseFile(Archivo); 
end;

Casimiro Notevi 18-05-2012 10:52:50

Si no sale completo el listado no es porque sea de poca calidad la impresora o tenga un buffer pequeño, más bien deberías mirar la configuración de la misma, los controladores usados, etc.
Yo he usado impresoras de ese tipo, buenas y malas, desde hace 27 años, y te aseguro que las impresoras en aquella época tenían poco buffer, algunas no tenían :)
Y por ese motivo no tiene que cortarse un listado.

duilioisola 18-05-2012 13:15:03

Yo miraría la configuración del tamaño de página, corte de papel, etc.
Si fuera por el tamaño del buffer, entonces bastaría con poner una pausa después de imprimir cada línea...
algo asi:
Código Delphi [-]
var 
  Archivo: TextFile; 
begin   
  AssignFile(Archivo, '\\pc\impresora');   
  Rewrite(Archivo);   
  while not qry.eof do    
  begin        
    writeln(Archivo,qry.fieldbyname('Linea').asstring);      
    qry.netx;    
    // esperar medio segundo
    // lo que imprimiría dos lineas por segundo
    sleep(500);
  end;     
  CloseFile(Archivo); 
end;

newtron 18-05-2012 13:59:44

Pues a mi si que me suena que pueda ser un problema de buffer. Es más, quiero recordar que había algunas impresoras que en msdos como les enviaras mucha información de golpe daba error de impresión y había que meterles una instrucción MODE con el parámetro /R para que reintentara imprimir sin errores.

De todas formas con el apunte del amigo duilioisola si es eso debería de solucionarse.

Saludos

dfarias 18-05-2012 16:44:40

Gracias colegas por vuestras respuestas. El controlador que estoy usando es el generico de windows, quizas el problema sea porque es W7?. Investigare por ese lado entonces si no creen que sea problema del buffer.


La franja horaria es GMT +2. Ahora son las 16:36:14.

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