Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Impresión directa en puerto COM (https://www.clubdelphi.com/foros/showthread.php?t=10438)

altp 19-05-2004 17:18:05

Impresión directa en puerto COM
 
Hola a todos.

Tengo un problema al imprimir en una impresora Epson TMU210, con puerto serie.
Imprimo directamente como si fuera una impresora LPT y me salen caracteres raros.

E mirado en los foros pero no e encontrado nada, aunque me suena que una vez leí algo, pero no lo encuentro, si pudieran ayudarme se lo agradecería.

Muchas gracias.

Saludos.

__cadetill 19-05-2004 17:38:08

prueba a inicializar la impresora con los #27#64

altp 19-05-2004 17:52:03

Gracias Cadetill por responder.

Eso lo tengo puesto, eso sí, al final.
Te envío el código por si ves algo y por si le puede interesar a alguien (es el código de COMBAT-F2D:
var
Impresora : TextFile;
begin
AssignFile(Impresora, 'COM1');
Rewrite(Impresora);
Writeln(Impresora, chr(27)+ chr(64) + chr(27)+ 'r' + chr(1));

Writeln(Impresora, chr(27)+ '!' + chr(0) + chr(27)+ 'r' + chr(0));

Writeln(Impresora, '*****************************************');
Writeln(Impresora, Conf.FieldByName('CAB1').AsString);
Writeln(Impresora, '*****************************************');
Writeln(Impresora, Conf.FieldByName('CAB2').AsString);
Writeln(Impresora, '');
Writeln(Impresora, Conf.FieldByName('CAB3').AsString);
Writeln(Impresora, Conf.FieldByName('CAB4').AsString);
Writeln(Impresora, Conf.FieldByName('CAB5').AsString);
Writeln(Impresora, '');
Writeln(Impresora, Query.FieldByName('FECHA').AsString + ' ' + FormatDateTime('hh:mm', Now) + ' Ticket ' + IntToStr(Numero));
Writeln(Impresora, '');
Writeln(Impresora, '*****************************************');
Writeln(Impresora, Query.FieldByName('NOMBRE').AsString);
Writeln(Impresora, Query.FieldByName('DESCRIPCION').AsString);
Writeln(Impresora, '*****************************************');
Writeln(Impresora, '');
Writeln(Impresora, FormatFloat('Importe 0,.00', Query.FieldByName('PRECIO').AsFloat) + ' - IVA Incluido');
Writeln(Impresora, '-----------------------------------------');
Writeln(Impresora, Conf.FieldByName('PIE1').AsString);
Writeln(Impresora, Conf.FieldByName('PIE2').AsString);
Writeln(Impresora, Conf.FieldByName('PIE3').AsString);
Writeln(Impresora, Conf.FieldByName('PIE4').AsString);
Writeln(Impresora, '-----------------------------------------');
Writeln(Impresora, Conf.FieldByName('PIE5').AsString);
Writeln(Impresora, '');
Writeln(Impresora, '');
Writeln(Impresora, '');
Writeln(Impresora, '');
Writeln(Impresora, '');
Writeln(Impresora, '');
Writeln(Impresora, #27#105);
[B] Writeln(Impresora, chr(27)+ chr(64)); // inicializo impresora[/b] CloseFile(Impresora);


Gracias por la ayuda

__cadetill 19-05-2004 18:00:02

pero te funciona o no?? de todas maneras, te aconsejo de inicializar siempre la impresora antes de imprimir, no después de hacerlo (no tiene sentido entonces)

altp 19-05-2004 18:13:53

Perdona Cadetill, no lo he probado porque ahora no tengo la impresora, la tiene el cliente.

Si puedo mañana te respondo a ver si me funcionó.
Pondré primero la inicialización, lo pondre debajo de Rewrite(Impresora);

Gracias por responder, ya te comentaré.

Combat-F2D 20-05-2004 01:12:28

con permiso de cadetill, si no te va, mandame un privado y te envio el codigo necesario para hacerla furular; he trabajado con ese tipo de impresoras;
revisa mis post pues creo que algo se ha tocado, no obstante si tienes dudas o similar, aqui me tienes

los problemas los tandras seguramnete en caracteres de los piratillas, es decir, ñ y similares

altp 20-05-2004 16:53:50

Probado
 
Hola. He probado a imprimir con el pequeño cambio de inicializar al principio y nada, me salen todo el rato caracteres raros del tipo " ?ÇÇ??ÇÇ??" así todo el rato. He probado algo que leí en los foros, imprimir primero una página de prueba sobre una impresora instalada, en concreto con una genérica, y ha salido perfectamente, he vuelto a probar desde mi programa y mi sorpresa es que funciona una vez hecha la página de prueba.

¿Sabeis por qué una vez impreso la página de prueba funciona desde el programa? En principio no tiene nada que ver, ya que la página de prueba se hace sobre una impresora en concreto y lo que hace el programa es imprimir directamente en el puerto.

Un saludo.

Ahh, gracias a los dos por responder.

Combat-F2D 20-05-2004 23:10:09

he estado mirando por los foros antiguos y creo que esto te servira, en ello comente en su momento algo referente a los caracteres esos raros que comentas; repito, si te siguen los problemas te mando un componente que utilizo para la impresion directa;

el link es:

http://www.clubdelphi.com/foros/arch...ghlight=ticket

altp 21-05-2004 09:58:03

Gracias por responder Combat-F2D (Julio).

Supongo que te refieres a utilizar la función StrToOEM, verdad?
Creo que eso no me vale porque hasta en las líneas en blanco me salen esos caracteres, si tienes confirmación que con eso se soluciona todo lo utilizo. Digo esto porque no tengo yo la impresora, la tiene el cliente.

Si tienes un componente sería estupendo tenerlo. Lo que yo quiero es imprimir sin tener ningún controlador de impresora instalado.

Si me quieres envíar el componente, mi correo es: angel.tovar@asesorainformatica.com

Gracias de nuevo

DarkByte 21-05-2004 22:40:31

¿No sería mejor que se postease el link para que otro que tenga tu mismo problema lo pudiese tener?.

Y... componentes COM hay muchos en www.torry.net

Combat-F2D 22-05-2004 17:26:03

te he remitido a ese email lo solicitado

en cuanto a lo del posteado creo que ya se ha tratado en anteriores, si mal no recuerdo, claro


La franja horaria es GMT +2. Ahora son las 18:13:10.

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