PDA

Ver la Versión Completa : Imprimir a puerto serie


anduj
31-01-2005, 23:35:00
Hola amigos del foro.

Llevo unos días peleando con una Epson TM L90 y de momento gana ella, pero no me doy por vencido y necesito vuestra ayuda.

Imprimo directamente por el puerto serie, haciendo:
AssignFile(f,com1);
Rewrite(f);
Writeln(f,'------------------------');
CloseFile(f);

El caso es que como no me imprimia, empecé a hacer pruebas y descubrí que si configuraba el puerto desde una ventana de MS-DOS con "mode com1 19200 n,8,1" y despues direccionaba un archivo a la impresora todo funcionaba correctamente. Incluso desde la aplicación en Delphi ya no habia ningún problema. Revisé 200 veces la configuración del puerto serie de mi W2000 y no habia nada que estubiese incorrecto así que para solucionar el problema decidí llamar a "mode com1 ..." con un winexec.

Todo funcionaba de maravilla hasta que un PC con Win98 se cruzó en mi camino. En Win98 no hay forma de que funcione. Aunque si direccionamos un fichero a la impresora lo hace bien. El problema lo encuentro al hacerlo desde Delphi.

Yo creo que el problema es que el puerto no acaba de estar bien configurado, pero no se de que forma lo puedo configurar sin llamar a Winexec.
¿Alguno de vosotros a sufrido estos males en algún momento?
La verdad es que desespera que en una máquina todo funcione bien, aunque sea con un parche, y en otra no haya manera.

Muchas gracias por la atención que me habeis prestado

defcon1_es
01-02-2005, 10:38:45
Hola,
creo que el fallo está en la línea de AssignFile.

Debe ser:

AssignFile(f, 'COM1'); //Entre comillas


Salu2.

anduj
01-02-2005, 11:02:53
Gracias defcon1

Lo de las comillas fue un error mio al escribir el mensaje, en el código fuente si que están.

carcaLincoln
12-02-2005, 00:16:30
Hola amigos del foro.

Llevo unos días peleando con una Epson TM L90 y de momento gana ella, pero no me doy por vencido y necesito vuestra ayuda.

Imprimo directamente por el puerto serie, haciendo:
AssignFile(f,com1);
Rewrite(f);
Writeln(f,'------------------------');
CloseFile(f);

El caso es que como no me imprimia, empecé a hacer pruebas y descubrí que si configuraba el puerto desde una ventana de MS-DOS con "mode com1 19200 n,8,1" y despues direccionaba un archivo a la impresora todo funcionaba correctamente. Incluso desde la aplicación en Delphi ya no habia ningún problema. Revisé 200 veces la configuración del puerto serie de mi W2000 y no habia nada que estubiese incorrecto así que para solucionar el problema decidí llamar a "mode com1 ..." con un winexec.

Todo funcionaba de maravilla hasta que un PC con Win98 se cruzó en mi camino. En Win98 no hay forma de que funcione. Aunque si direccionamos un fichero a la impresora lo hace bien. El problema lo encuentro al hacerlo desde Delphi.

Yo creo que el problema es que el puerto no acaba de estar bien configurado, pero no se de que forma lo puedo configurar sin llamar a Winexec.
¿Alguno de vosotros a sufrido estos males en algún momento?
La verdad es que desespera que en una máquina todo funcione bien, aunque sea con un parche, y en otra no haya manera.

Muchas gracias por la atención que me habeis prestado
Hola queria hacerte una pregunta sabes como saber cuando la impresora termino de imprimir el trabajo, porque tengo que hacer una aplicacion que imprime un recibo N veces y el usuario puede cancelar o pausar la impresion.

SAludos y mil gracias
Marcos

anduj
25-02-2005, 12:18:39
Perdona que no te haya contestado antes, pero he estado desconectado unos días.

Mi problema se solucionó utilizando un componente de puerto serie que descargué de la superpage. Configuré el puerto y a funcionar.

No tengo respuesta a lo que planteas ya que mando caracteres al puerto serie y la salida es automática. No da tiempo a cancelar la impresión de ninguna forma ya que en pocos segundos la impresora a tirado el rollo entero.

Voy a mirar un proceso que escribí hace tiempo para ver si puedo sacar alguna idea. Si encuetro algo te vuelvo a escribir.

Saludos