PDA

Ver la Versión Completa : Impresion En Lpt1


Ricsato
04-05-2005, 02:49:43
Hola a todos en el Foro, estoy mandando imprimir un Ticket en una impresora matricial Star-SP200 y lo hago enviando la impresion en ascii al Lpt1 de la siguiente forma:

AssignFile(Lst,'LPT1');
Writeln(LST,' BAJA OPTICA');
Writeln(Lst,'');
Writeln(Lst,'Cliente : ' + eClienteNombre.Text);
Writeln(Lst,'------------------------------------------');
CloseFile(Lst);

Y todo esto sale en letra normal, se que existe una forma para indicarle a la impresora para que pueda remarcar la letra y salga del mismo tamaño pero en negritas, ademas de otra manera de indicarle que imprima las letras mas gruesas o de tamaño mas grande, en este caso para mi encabezado y todo esto haciendo una impresion al LPT1.

Me gustaria que alguien me dijera como puedo hacerle para poder imprimir de esta manera!!, de antemano gracias por su ayuda.

Ricardo.
Mexicali, B.C., Mexico.

marcoszorrilla
04-05-2005, 07:14:10
Para eso tienes que conseguir los códigos de escape de la impresora, esto puede ser bien en la página Web del fabricante o llamar al teléfono de contacto que tengan y pedirlos.

Un Saludo.

Ricsato
04-05-2005, 21:45:06
Hola, tengo los codigos de la impresora, pero lo que no se es como indicarselos por programacion en Delphi, si lo que tengo es lo siguiente:

var
Lst : TextFile;
...........
AssignFile(Lst,'LPT1');
Rewrite(Lst);
Try
Writeln(Lst,'No hay devoluciones en Efectivo.');
Writeln(Lst,'Unicamente en productos.');
CloseFile(Lst);
Except
CloseFile(Lst);
End;

Lo que no se, es en que parte del Writeln(''), los tengo que indicar, si por ejemplo me dice el manual que para expandir el tamaño de un caracter, su codigo es: <SI> y en hexadecimal es 0E, como tengo que indicarlos?, gracias.

Ricardo.
Mexicali, B.C., Mexico

vic_ia
04-05-2005, 21:51:49
hola...

yo los mando como caracteres y obviamente codificados en decimal,... por ejemplo el caracter que quieres enviar 0E (en hexadecimial) seria el 14 en decimal...por lo que lo enviaria asi...
writeln(Lst, #14)
espero te sirva...

saludos...

Ricsato
04-05-2005, 22:30:32
Muchas gracias amigo!!, era justo lo que necesitaba...

Ricardo.
Mexicali, B.C., Mexico

leonelpereda
16-03-2007, 17:58:01
hola...

yo los mando como caracteres y obviamente codificados en decimal,... por ejemplo el caracter que quieres enviar 0E (en hexadecimial) seria el 14 en decimal...por lo que lo enviaria asi...

Código Delphi [-] (http://www.clubdelphi.com/foros/#)writeln(Lst, #14)


espero te sirva...

saludos...

Hola

Tengo un problema parecido he probado con el #14 y funciona muy bien, pero cuando trato de poner double height con <ESC> "h" "1" es decir #27'h1' y no hace nada.

Gracias,
Leonel

basti
17-03-2007, 15:20:19
Seguro que es "h""1" ? normalmente en los manuales de impresora mezclan los tipos y uno se forma un lío.

Por lo general ponen los códigos ESC en hexadecimal, las letras en formato texto y los números en decimal.

Supongo que lo que tendrás que mandar en tu caso es:
#27 + 'h' + #1

leonelpereda
18-03-2007, 20:17:05
Seguro que es "h""1" ? normalmente en los manuales de impresora mezclan los tipos y uno se forma un lío.

Por lo general ponen los códigos ESC en hexadecimal, las letras en formato texto y los números en decimal.

Supongo que lo que tendrás que mandar en tu caso es:
#27 + 'h' + #1

Hola,

De hecho he probado de ambas formas #27'h1' y #27'h'#1 y de ninguna me ha funcionado, realmente no se que pasa.

Saludos,
Leonel

AzidRain
19-03-2007, 00:14:51
haciendo click Aquí (http://www.clubdelphi.com/foros/showthread.php?t=41426) llegas a un post que puse hace unos días con un componente muy simple para imprimir en matriz de punto, ya incluye lo necesario para negrita, subrayada, doble ancho o comprimida, asi como fijar el tamaño de la hoja, posicionar el cursor y saltos de página. No soy el autor pero me ha servido muy bien además de que es bastante simple y puedes modificarlo a tu gusto.

leonelpereda
21-03-2007, 19:20:08
Hola

haciendo click Aquí (http://www.clubdelphi.com/foros/showthread.php?t=41426) llegas a un post que puse hace unos días con un componente muy simple para imprimir en matriz de punto, ya incluye lo necesario para negrita, subrayada, doble ancho o comprimida, asi como fijar el tamaño de la hoja, posicionar el cursor y saltos de página. No soy el autor pero me ha servido muy bien además de que es bastante simple y puedes modificarlo a tu gusto.

Muchas gracias, tu ejemplo esta muy bien solo que no hace lo que necesito, "poner double height"

Saludos,
Leonel

PabloTech
22-03-2007, 23:07:24
Hola, tengo los codigos de la impresora,
¿Tengo un problema similar. Podrías compartir los códigos conmigo?
Mi e-mail: pblmdn@hotmail.com
Gracias...

AzidRain
23-03-2007, 06:40:13
Mi estimado leonel, el componente que te pase efectivamente no tiene el doubleheight pero creo que esta mas que claro como modificarlo ya que solo es cuestión de mover unos cuantos códigos. El código se explica por si solo, los códigos solo es cosa de buscar el google y listo recordemos que ESC es #27 en Delphi.

AGAG4
23-03-2007, 18:19:27
Yo tengo una Star y si me funciona el caracter #14 pero con una Epson TM-U220 no me funciona, ya baje todos los manuales posibles de la Epson y no encuentro algo relacionado con los caracteres, señalan unos Font11, Font22, etc. pero no indican los caracteres para manipular el tamaño de letra, ya he investigado en otros medios y me indican que tengo que usar el #14 para la epson que ese caracter funciona para todas las miniprinter, pero veo que en mi caso no funciona :eek:

leonelpereda
23-03-2007, 19:46:29
Mi estimado leonel, el componente que te pase efectivamente no tiene el doubleheight pero creo que esta mas que claro como modificarlo ya que solo es cuestión de mover unos cuantos códigos. El código se explica por si solo, los códigos solo es cosa de buscar el google y listo recordemos que ESC es #27 en Delphi.

Hola,

De hecho estuve revisando y el componente hace algo muy similar a lo que estoy haciendo, que es:

Estos codigos son para una STAR SP200

var Lst : TextFile;
begin
AssignFile(Lst,'LPT1');
Rewrite(Lst);
Write(Lst, #27'W1'#27'h1');
Write(Lst, 'Texto ancho y alto');
CloseFile(Lst);
end;
solo que no cambia el alto de la letra solo el ancho como si no fuera valido el cambio de alto o si fuera necesario algun comando previo a ese.

Tambien trate asi
var Lst : TextFile;
begin
AssignFile(Lst,'LPT1');
Rewrite(Lst);
Write(Lst, #27'h1');
Write(Lst, 'Texto alto');
CloseFile(Lst);
end;
y nada :(, y no veo cual es el problema,

Gracias,
Leonel

PabloTech
23-03-2007, 22:59:34
No soy un experto; pero revisando aquí (http://espanol.starmicronics.com/printers/printers_specs/sp200specs.pdf), solo aparecen dos tamaños de caracteres en esa impresora. Son el 7x7 y 7x9. No hay más.

Suerte.

AzidRain
26-03-2007, 23:35:24
El doubleheight no esta soportado por todas las impresoras, me parece que las epson no lo hacen. Recordemos que hay dos estandares para impresoras matriciales el ESC de Epson y el IBM Proprinter, este último más extendido. En IBM PP si hay doubleheight...aqui te dejo unos links a codigos de control varios:

Star Micronics (http://72.14.203.104/search?q=cache:KcvBVr32DaYJ:www.star-micronics.co.jp/eng/service/usermanual/lc15um.pdf+epson+doubleheight+control+code&hl=es&ct=clnk&cd=1&gl=mx&client=firefox-a)
Manual Epson ESC/P (http://support.epson.ru/products/manuals/000195/sidm99.pdf)