Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Posicionar hoja antes de imprimir. (https://www.clubdelphi.com/foros/showthread.php?t=59057)

solemno 11-08-2008 18:51:06

Posicionar hoja antes de imprimir.
 
Hola, antes que nada gracias por interesarte en el hilo y mejor aún si puedes ayudarme.
Aviso primero que he buscado mucho antes de preguntar.

Tengo que hacer una aplicación para imprimir diferentes tipos de informes en una impresora de matriz de puntos EPSON LX-810 y no consigo hacer que antes de imprimir el informe, el papel vuelva a la posición inicial.
Ocea, quiero que antes de imprimir la impresora coloque nuevamente al papel en la misma posición que estaba antes de imprimir, ya que al salir las impresiones (en formulario continuo) siempre quedan en posición de corte, y si imprimo otro informe empieza a imprimir donde había quedado el papel.
Espero puedan ayudarme.

coso 11-08-2008 18:59:11

pensaba que era una impresora de tickets, aunque veo que es una impresora algo antigua, por lo que igualmente tambien sirva: quiza probando de enviar a imprimir caracteres #13#10 o de nueva pagina, (no estoy seguro si el #11 o #12) podras 'exigirle' que cargue una pagina nueva

solemno 11-08-2008 19:09:16

Cita:

Empezado por coso (Mensaje 306953)
Hola, puedes probar de imprimir unos cuantos caracteres de salto de linea (#13#10) justo despues de la impresion, para asi te vaya rodando un poco de papel.

Para que se entienda mejor, al colocar el formulario continuo en la impresora se presiona las "testañas" que sostienen el papel en los rodamientos de goma del carro, despues presionas el boton [on-line] de la "botonera" y esto hace que la impresora se trague el papel hasta ponerlo en la posición ideal para empezar a imprimir.
Despues imprimo un formulario y queda en la posición necesaria para cortarlo sobre la linea "precortada".
Lo que yo necesito es que el papel vuelva atras hasta quedar el formulario listo para imprimir el siguiente informe.

Esta vendría a ser la impresora:

solemno 11-08-2008 19:11:08

Ok, pruebo y luego te cuento

solemno 11-08-2008 19:39:23

Intente con lo siguiente pero no pasa nada... alguna sugerencia?
Código Delphi [-]
Procedure TForm1.PWrite(s:String);
var PT :Integer;
     P   :Pchar;
Begin
   PT := FileOpen('lpt1',fmOpenWrite ); // Abrimos la impresora como un archivo
   P   := PChar( s ); //convertimos la  cadena a un PChar
   FileWrite(PT,P^,length( s )); //escribimos a la impresora
   FileClose(PT);//cerrar el archivo de la impresora
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     PWrite(#11);//intenté con diferentes pero no hace nada
end;

BlueSteel 11-08-2008 20:38:52

Hola solemno

Eso lo solia hacer con clipper, pero debes conocer los codigos de escape de la impresora...

No todas las impresoras trabajan igual.... cada una tiene un codigo para avanzar o retroceder una pagina, avanzar o retroceder una linea...

Te recomiendo que busques los codigos de esc de dicha impresora...

hasta el momento solo he econtrado esto
Cita:

Para poder imprimir caracteres especiales, no debes imprimir con "Printer",
si no debes hacerlo con lo siguiente:

Open "LPT1" For output as #1
Print #1, chr$(27) & chr$(15) & "Letra Chica"
Print #1, chr$(27) & chr$(18) & "Letra Normal"
Print #1, chr$(27) & chr$(15) & "Letra Grande"
Close #1

El puerto LPT1, asume la impresora que está conectada directamente y no en
red, si necesitas imprimir en la red, en el nombre del archivos debes
indicar el servidor o estación de trabajo y el nombre de la impresora,
ejemplo : "\\SERVIDOR01\EPSON3".
salu2:p:D

coso 11-08-2008 21:18:43

Bueno, puedes imprimir con la variable printer tambien. Existe por el foro una unidad llamada URaw que permite tratar la impresora muy directamente, pudiendole enviar los caracteres de control q necesites tal cual.

coso 11-08-2008 21:22:05

Cita:

PWrite(#11);//intenté con diferentes pero no hace nada
lo mejor sera que encuentres alguna lista de los codigos de impresion de esa impresora


La franja horaria es GMT +2. Ahora son las 11:37:48.

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