PDA

Ver la Versión Completa : hacer TPrinter.EndDoc no envie un salto de pagina


orfeo
05-01-2007, 00:31:23
Holas, tengo un problema con TPrinter.EndDoc. Estoy en W2k+SP4 y D6

Necesito imprimir Papel continuo sobre Epson Lx300, estoy usando Tprinter, todo muy bien, pero cuando le doy TPrinter.EndDoc., me hace un salto de pagina y se posiciona en la proxima pagina.
Es un comportaminto normal? se puede parametrizar? para que no haga en salto de pagina?

Como les decia necesito que no haga el salto y deje el cabezal posicionado al final de lo ultimo que imprimio.
Esto es porque necesito imprimir en tiempo real sobre una lectura del puerto com (leo una trama del com e imprimo la trama, espero la proxima trama, cuando llega la imprimo y asi sucesibamente)

Como puedo usar el Tprinter, pero sin que me haga el salto de pagina?


Gracias

PabloTech
16-03-2007, 13:29:42
:( Hola...

Tenemos el mismo problema. :confused: ¿Encontraste alguna solución? Yo sugiero que evites el EndDoc hasta tanto estes seguro que termine la impresión. :confused: ¿Si saves otra respuesta puedes comunicarla?

Gracias...:)

orfeo
16-03-2007, 17:11:51
Holas, la verdad probe otras cosas, y nada..

lo que propones, lo probaste? porque me parece que no imprime hasta que le mandas en endDoc. (creo)

Como el proyecto se paro, lo deje .. supuestamente mi cliente ahora compro una impresora de calor (o como se llame), y esta tiene papel en rodillo y parece que la impresora no hace salto de pagina (pues no tiene paginas, jejej) asique deje todo, hasta que se reanude la cosa...

Pero si encontras algo, de como hacerlo, me inseresa mucho.

Saludos,

PabloTech
17-03-2007, 15:09:18
:o No lo probé y créo que tienes razón.

:) Estuve leyendo, y la mayoría a optado por mandar el texto y los comandos de impresora directamente al puerto LPT1. Esto imprime con las fuentes de la impresora y los formatos de texto (Negrita, Cursiva) como así también los saltos de línea como de página deben mandarse como comando de escape.

:confused: Ahora, yo no tengo los comandos de escape. Si tu los tienes, podrías pasarmelos. Por le general, figuran en un capítulo del manual de la impresora.

Chau... Hasta luego.:)

PabloTech
17-03-2007, 16:08:29
Aquí puedes mirar: http://www.clubdelphi.com/foros/showthread.php?t=41254. Yo voy a leer y a probar. Chau...

itsi
22-03-2007, 09:08:38
buenas, yo tenia el mismo problema pero lo consegui.....

Prueba esta codigo :

procedure TForm1.btImprimirClick(Sender: TObject);
var
Impresora : TextFile;
Texto : string;
begin
Texto :=' linea de texto';
with Printer do
begin
AssignPrn(Impresora);
Title := 'Prueba '; //titulo que sale en el adminitrador impresoras
Rewrite(Impresora);
for n:= 0 to 200 do
Writeln(Impresora, Texto);//Imprime 200 lineas...

CloseFile(Impresora);
end;


espero que os sirva

PabloTech
22-03-2007, 13:36:37
:) Muchas gracias itsi, es justamente lo que estoy haciendo. :rolleyes: Pido disculpas si a veces no soy específico. :cool: Pero además, sé que existen comandos de escape que se envían junto con el texto a imprimir. Se llaman de escape porque son códigos que se envían luego del carácter 27 (Esc). Estos comandos pueden cambiar la fuente de impresión, el estilo de letra, y provocar el salto o la carga de la página (conocidos como eject/load). El comando eject hace que el papel contínuo salga un poco para que se pueda cortar; y, el comando load hace que el papel contínuo retroceda, luego de ser cortado, y se acomode para una nueva impresión. :confused: Mi problema es que no encuentro dichos códigos.
:) Gracias.

itsi
22-03-2007, 16:44:57
Vale.... tengo un pdf con todos los comandos de ESC de alguna impresoras.
Creo que el Load es ESC EM n donde n tienes que porner R en Deccimal? no obstante si quieres el pdf te los envio. Pesa unos 1.5Mb......

PabloTech
22-03-2007, 17:48:32
Muy amable de tu parte itsi.

Mi e-mail es: pblmdn@hotmail.com

Y de nuevo GRACIAS.