![]() |
Problema Impresión de Tickets
Saludos a todos los miembros del club!
Vereis he hecho una aplicación para una tienda y tengo problemas a la hora de imprimir tickets. La pega es que en mi ordenador y en otro distinto que he probado imprime los tickets tal y como yo quiero pero lo instalo en el ordenador de la tienda y no me coge los parámetros de impresión. Supongo que será un problema del controlador. La cuestión es que tengo instalada la impresora, una Epson TM U220A, como genérica sólo texto. He probado a desinstalar el driver y volverlo a instalar y no hay manera. He pensado en formatear el disco duro pero me parece una solución muy drástica, demasiado. ¿Alguien podría darme alguna respuesta? Gracias |
con los parametros te refieres a negritas, subrayado y demas?
las computadoras donde lo pruebas tienen el mismo sistema operativo? cual? todas usan el driver de solo texto? |
Cita:
P.D.: el ruidito era un tornillo flojo del espejo retrovisor, lo apreté un poquito y se acabó el ruidito. :) |
Cita:
Pues sí las computadoras donde los pruebo tienen el mismo sistema operativo. Windows XP, y no importan las versiones porque he probado en distintas y funciona en todas (HOME y PROFESIONAL) menos en el ordenador de la tienda que también usa PROFESIONAL. Sí y todas usan el driver de sólo texto. Parece increíble pero cierto. :eek: |
Cita:
|
Que Tal Mira
HOLA QUE TAL SOY FAVIAN DE MÉXICO, LO QUE NECESITAS HACER ES RIMERO CONOCER LAS SECUENCIAS DE ESCAPE DE EL MODELO DE LA IMPRESORA, DESPUES DEN DELPHI PODRAS MANDRARLO DE LA SIGUIENTE FORMA
WriteLn('#27i'); EN DONDE EL CODIGO O SECUENCIA DEBE IR ENTRE ('') SI USAS MAS DE UNA SECUENCIA DEBES USAR EL SIGNO DE + ESPERO TE SIRVA, ANIMO. :) |
Cita:
¿Y por qué no pruebas a instalar los drivers de esa impresora?, ¿puede que sea lo más lógico, no crees? Si no los encuentras, avisas y te paso un enlace para descargarlo. |
Eso ya hace tiempo que lo probé y la impresora funciona peor por eso está instalada como sólo texto. De todas maneras gracias. Estoy probando la propuesta de Favián
|
Cita:
por cierto, contando a las de ayer, son ya varios centenares de impresoras de esas que he instalado/configurado... y te aconsejo que instales sus drivers teniendo especial cuidado en escoger la versión adecuada al windows donde lo instalas. |
Cita:
A diario modifico instalaciones de tecnicos que dejan la impresora instalada como "Generica solo texto". Como las impresoras de tickets son OEM, no llevan un CD de drivers, asi que los instaladores no le dan muchas vueltas, y la ponen como generica. Malo, eso es malo. Por qué imprime mal?? Pues no se decirte, ya que no dices lo que imprime mal (se necesitan más detalles, ten en cuenta que desde aqui no veo los tickets). Tampoco dices como envias el texto a la impresora. Si usas un componente de informes (lo dudo, porque como generica no va a funcionar) deberias decir cual. Formatear porque no encuentras el problema no es una solución, es desesperación. Ultimamente tambien es habitual formatear por cualquier cosa. Sin contar con que las Epson (o las samsung) son las que menos problemas te darán. Ya veras el dia que te encuentres con una Star, o alguna marca blanca. Vamos, que lo logico seria que intentases localizar el problema, más que nada para evitar más problemas. |
Cita:
Totalmente de acuerdo con lo que comentas. |
Cita:
Cita:
No es un problema de un archivo ini, puesto que lo descarté, e imprimo donde quiero mediante espacios. Cita:
Cita:
Cita:
Cita:
|
Cita:
Siento mucho que te parezca pedante y superior, solo pretendia ahorrarte muchos disgustos. El post son solo palabras, el tono le pones tu al leerlo. Lo que he comentado lo veo a diario, y lo he sufrido durante mucho tiempo. Las impresoras de tickets te estan dando y te darán muchos problemas, durante mucho tiempo, ya que la solución no va por donde tu la estas enfocando. Me remito a lo dicho anteriormente. He intentado ayudarte, tomatelo como quieras. |
Me acabo de tomar un cafe, y debia de estar cargado de ironia, ya que me he puesto a pensar: "Que cabrones los chicos de Epson, que hacen drivers para que sus impresoras funcionen peor".
|
Cita:
|
Cita:
Yo lo hice hace ya unos años y me dijeron que sus impresoras son OEM, y que las venden ha PROFESIONALES, los cuales SE SUPONE que deben de tener el driver para instalarlas. Solo hay una impresora que venden al publico (EPSON TM-L90 BOX) y que si lleva drivers. Tras un buen rato insistiendo en que me dejaran poner los drivers en el CD de instalación (lo cual tampoco lo permiten) y de hablar con media plantilla, llegamos al acuerdo de que: yo pongo lo que quiera en el CD, y si les molesta me lo indican y lo quito. Vamos, que me hago el loco, como si no lo supiera. Tampoco llevan cable, que cabrones, que poco les costaria, verdad?? Veo que aun dudas de que la opción correcta es instalar el driver adecuado. Ah, que nadie piense que con el "generico solo texto" no se puede imprimir, que si que se puede, pero no es mejor. Suerte |
Hoy en día, casi todos los "aparatos" vienen sin nada, vas a la página web del fabricante y desde allí te descargas el manual, los drivers y toda la información que necesites. Es una manera de ahorrarse costes y poder ofrecer sus productos más baratos para poder competir con el resto de fabricantes.
Imagina preparar 1 millón de cds de drivers más 1 millón de manuales de usuario... ¿cuánto costaría eso?, pues compáralo con poner un par de ficheros en una página web y quien lo necesite que lo descargue. :) |
Yo estoy a punto de iniciar un proyecto que incluira estas impresoras y lo había pensado mucho por el problema que tiene nuestro amigo el cual me resulta una completa ironía: Es mas díficil imprimir de la forma más simple.
Por ahí vi que te recomendaro usar secuencias de escape, lo cual me parece es tu mejor solución pero tienes que considerar que: - con el Writeln de Delphi las secuencias de escape (#27) se descartan antes de llegar a la impresora (más bien lo hace windows) por lo que no importa que tantas secuencias mandes antes del texto, a la impresora solo llega el texto "pelón". -Tendrás que imprimir directamente a la impresora, pero sin pasar por Windows Lo puedes hacer de esta forma:
Es un código muy simple pero de esta forma las secuencias de escape si son pasadas tal cual a la impresora. Ojo, como no estamos usando Windows para ello, no tenemos ninguna función del driver disponible por lo que tendremos que checar por nuestra cuenta si hay papel, tinta, etc. Pero para el caso de impresoras de ticket no es tan dificil. La colocación de coordenadas la puedes usar con la secuencia de escape correspondiente (no me acuerdo ahorita cual es) hay una para mover la cabeza en X y otra en Y, tambien puedes simular esto enviando saltos de línea para las Y e imprimiendo espacios en blanco para las X. A mi me funcionó de maravilla y para este tipo de impresión se me hace la forma mas sencilla. Además no importa si tienes el driver o no, de hecho funciona aunque no tengas ninguno instalado en Windows. Ojala te sirva |
salto de pagina
lo hice como indicaste con las secuencias de escape y funciono perfecto, en dos pcs, cuando trato en una tercera no funciona y es la misma impresora!, a que crees que se deba?
lo que sucede es que en esta nueva PC esta tiene WXP Profesional como la anterior, si empieza a imprimir pero no hace los saltos de pagina, lo curioso es que es la misma impresora, no el mismo modelo, la misma impresora, solo cambio el cable de una Pc a La otra, lo unico diferente es que esta pc no tiene impresoras instaladas, ya instale incluso una Impresora solo para probar si le faltaban los drivers (instale los drivers de la fx880 de epson , no la impresora real) y el problema persiste te doy un ejemplo del codigo const pNewLn = #10 +#13; // Salto de linea pBold = #27 + 'E'; // Activar negrita pBoldOff = #27 + 'F'; //Desactivar negrita begin PWrite(pNewLn ); PWrite(pNewLn ); PWrite(' hola como estas'); PWrite(pNewLn ); PWrite(pNewLn ); PWrite(' Preparando Prueba de Impresion'); PWrite(pNewLn ); PWrite(pNewLn ); Antes cree el procedure Pwrite 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; ojala me puedas ayudar |
La franja horaria es GMT +2. Ahora son las 18:27:33. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi