PDA

Ver la Versión Completa : Alimentacion de Papel en Epson tmu 200


frankmch
30-10-2003, 00:34:57
Saludos a todos los colegas del foro....

En esta ocasion tengo un problema que aun no he podido solventar, espero laguien me de una sugerencia.

Necesito realizar una rutina en delphi que me permita hacer retroceder el rollo de papel en una impresora Epson tmu 200, asi como hacer la alimentacion del mismo desde la aplicacion, este segundo topico no es tan critico ya que la impresora posee ese control con un boton de feed, pero necesito retroceder el papel para poder cuadrarlo con el menbrete de la compañia al momento de imprimir...


cualquier sugerencia o comentario sera agradecido...

gracias de antemano

jachguate
30-10-2003, 20:16:20
mmm.... hasta donde recuerdo las TMU's no soportan retroceso de carro...

Y hombre... me has asustado al decir que necesitas que "Alimente" el papel también, pues eso está un poco mas complicado... jejeje :D :D

Hasta luego.

;)

marcoszorrilla
30-10-2003, 20:21:57
Hace años me ocurrio algo parecido con una Philips y la solución fue avanzar x lineas y saltarme la primera página y empezar por la segunda en el lugar deseado, ya que la impresora tiene un visor y no admitía ponerla más atrás ni siquiera a mano puesto que no imprimía.

A ver si te vale la idea.

Un Saludo.

frankmch
31-10-2003, 01:50:05
Las Tmu 200 aceptan retroceso y avance de papael desde software, yo tampoco lo creia hasta que lo vi implementado con un programa hecho en Clipper...

lamentablemente no poseo los fuentes de dicho programa.

jachguate
31-10-2003, 05:27:19
Tenes toda la razón... es parte del estándar:


ESC J n Realiza un avance de línea en unidades mínimas
ESC K n Realiza un retroceso de líneas en unidades mínimas
ESC d n Avanza el papel el número de líneas indicado por n
ESC e n Retrocede el papel el número de líneas indicado por
n


Hasta luego

;)

frankmch
04-11-2003, 01:06:41
gracias por la informacion, me es bastante util.

Podrias facilitarme la direccion donde puedo conseguir la documentacion del estandar de estas imoresoras, ya que me interesaria conocer a fondo el uso de las mismas.

tambien agradeceria me esclarecieras un poco el uso de los comandos ESC/POS, no tengo muy claro como implementarlos en mi programa.

gracias

jachguate
04-11-2003, 06:16:54
La información sobre el estándar es escasa... sin embargo, si buscas justamente por esc/pos en google o altavista, seguro encontras algo útil.

Cual es específicamente tu problema para implementar los comandos en tu programa?

Hasta luego.

;)

frankmch
04-11-2003, 14:16:13
Lo Que no tengo claro es acerca de como enviarle estos comandos a la impresora.
lo hago mediante que objeto?

Podrias darme un ejemplo del envio de estos parametros a la impresora (ESC/POS)

Gracias

jachguate
05-11-2003, 07:13:12
Lo normal es escribirlos directamente en el puerto paralelo/serial, al estilo del viejo pascal.

algo como:

Var
lst : TextFile;

Begin
AssignFile(lst, 'lpt1'); // o com1, lpt2, etc.
Rewrite(lst);
write(lst, LaSecuenciaDeEscapeQueTeInterese);
Writeln(lst, 'Hola, esto es una prueba!');
Close(lst);
End;


Hasta luego.

;)

Mnemosine
07-07-2005, 00:19:36
hola a todos, espero alguienme pueda auxiliar necesito enviar el corte de papel desde mi aplicacion en Delphi 7, alguien podria explicarme como hacerlo.


Saludos

dionisiopz
27-07-2006, 23:28:02
:)
procedure TForm1.BitBtn1Click(Sender: TObject);
var Impresora : TextFile;
Begin
assignFile(Impresora, 'LPT1'); //Asigna el puerto a la variable "Impresora"
//'LPT1' indica el puerto al que se conecta la impresora,
//ej.: 'COM1', 'COM2'

rewrite(Impresora); //apertura del archivo, creacion

//Los siguientes son comandos ESC. ESC o escape es el caracter #27
//Comando para cambiar tipo de letra: ESC ! n
Write(Impresora, #27);//ESC, Write(Impresora, ESC);
Write(Impresora, '!');// ! , Write(Impresora, !);
Write(Impresora, #1); //Write(Impresora, n); #n
{n=0 : 10cpp
n=1 : 12cpp
n=2 : proporcional
n=4 :comprimido
n=8 : negrita
n=16 :doble altura
n=32:doble anchura
n=64 : cursiva
n=128 : subrayado}
Writeln(Impresora, 'TIENDA DE ROPA LAS VEGAS');//Texto a imprimir
Writeln(Impresora, '123456789012345678901234567890');
Writeln(Impresora, '111111111111111111111111111111');
Writeln(Impresora, 'abcdefghijklmnopqrstuvxyzABCDE...');
Writeln(Impresora, '______________________________');
Writeln(Impresora, '------------------------------');
Writeln(Impresora, '?? !"#?%&''()*+,-./0123456789:');
Writeln(Impresora, ';<=>?@ACD..xyz{|}~¦ÇüéâäàåçêëèïîìÄ');
Writeln(Impresora, 'ÖÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»¦');
Writeln(Impresora, '¦ÂÀ©¦¦++¢¥++--+-+ãÃ++--¦-+¤ðÐÊËÈiÍÎ');
Writeln(Impresora, 'Ï++¦_¦Ì¯ÓßÔÒõÕµþÞÚÛÙýݯ´­±=¾¶§÷¸°¨·');
Writeln(Impresora, '¹³²¦ ');
Writeln(Impresora, 'ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ'); //Linea Doble
Writeln(Impresora, 'ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'); //Linea sencilla.

//Para avance de unidades mínimas comando: ESC J n
//Ejemplo:
Write(Impresora, #27);//ESC
Write(Impresora, 'J');// J
Write(Impresora, #200);// n=número de unidades mínimas

//Para avance de líneas comando: ESC d n
//Ejemplo:
Write(Impresora, #27);// ESC
Write(Impresora, 'd');// d
Write(Impresora, #10);// n= número de líneas

//Para corte del papel comandos:
// ESC i
// ESC m
Write(Impresora, #27);
Write(Impresora, 'm');// m= corte parcial, en teoria i= corte total

CloseFile(Impresora); //cerrar el archivo
end;

chip01
23-11-2011, 19:23:22
Hola como estan?

El codigo me sirvio bien, pero yo coloco en vez de assignFile(Impresora, 'COM2'); pongo assignFile(Impresora, '\\192.168.1.1\impresora');
para que funcione con una impersora compartida, o sino si quiero seleccionarla coloco un combobox y luego este codigo

procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
begin
for i := 0 to Printer.Printers.Count - 1 do
combobox1.Items.Add(Printer.Printers[i]);
end;
Y en el uses coloco PRINTERS