PDA

Ver la Versión Completa : el eterno problema de los printers de ticket y nuestras aplicaciones


erickperez6
02-10-2011, 02:35:05
Saludos,

Tengo un problema en la impresion de ticket para punto de venta, pense que era un problema comun asi que busque primero en el foro y encontre mucho y de todos los temas pero nada exacto para mi particularidad (quizas escarbando mas encuentre algo), por lo que veo es un dolor de cabeza el asunto de imprimir un ticket como deseamos al inicio porque los problemas son multiples siempre, tamaño del papel, tamaño del font, abrir gaveta, velocidad de la impresion, etc... por lo general nos encontramos con estos problemas en el vergonzoso y ultimo momento.

Pues me preguntaba si existiria algun software o manera de emular ciertos printer de uso comun y testear nuestros programas en ambiente de desarrollo, y entonces asi poder ver el resultado real de lo que pudiera ser nuestra impresion del ticket u otro documento? o quizas otra alternativa seria disponer de un FAQ de los problemas mas frecuentes, de las configuraciones mas optimas de algunos impresores, de puntos a tomar en consideracion, mejores practicas y otros temas relacionados en la impresiones de ticket.

En fin, entrando a mi particular inconveniente, utilizo fastreport 4.5 y en un impresor star sp500 con sus drivers instalados bajados de la pagina del fabricante, las letras salen en tamaño mas grande de lo normal y por lo tanto todo se corta, en las propiedades del printer solo tiene 3 tipos de tamaño de letras y no importa cual le ponga siempre sale el ticket igual de mal. Pues configure otro printer Generic text de windows y el ticket sale perfecto, a excepcion de un detalle, cuando termina de imprimir brinca como 10 lineas dejandome un espacio muy amplio y vacio entre un ticket y otro, si genero la impresion del ticket en un archivo de texto o un pdf, el finaliza justamente donde debe e incluso, cuando imprimo con el printer configurado como star sp500 y sus drivers, aunque salga mal la impresion se detiene justamente donde termina el ticket, alguien tiene idea de como resuelvo esto ?

duilioisola
02-10-2011, 20:42:13
Si las letras salen más grandes de lo normal, puede que debas cambiar la resolución de la impresora.
En mi caso tenía una ticketera que que tenía la opción de trabajar a 200ppp y a 300ppp. En una salían las letras enormes y en la otra normales.
Nota: ppp = puntos por pulgada

heroe555
02-10-2011, 21:52:37
En cuanto a emuladores Fiscales tal vez te sirva este: http://www.impresoras-fiscales.com.ar/emulador.htm
Es de pago, pero me ha servido mucho, precisamente para no tener problemas en la instalación.

En cuanto a la forma de imprimir, puedes probar con una impresora genérica usando un código como este:


var
Archivo: TextFile;
begin
AssignFile(Archivo, 'LPT1');
Rewrite(Archivo);
writeln(Archivo,'Línea a imprimir');

CloseFile(Archivo);
end;


También puedes usar el Fast Report, que mencionaste. Lo importante con esta opción es usar el fast report dot-matrix y recuerda usar un tipo de letra que tenga los caracteres del mismo tamaño como: courier.

erickperez6
03-10-2011, 14:59:50
En cuanto a emuladores Fiscales tal vez te sirva este: http://www.impresoras-fiscales.com.ar/emulador.htm
Es de pago, pero me ha servido mucho, precisamente para no tener problemas en la instalación.

En cuanto a la forma de imprimir, puedes probar con una impresora genérica usando un código como este:


var
Archivo: TextFile;
begin
AssignFile(Archivo, 'LPT1');
Rewrite(Archivo);
writeln(Archivo,'Línea a imprimir');

CloseFile(Archivo);
end;


También puedes usar el Fast Report, que mencionaste. Lo importante con esta opción es usar el fast report dot-matrix y recuerda usar un tipo de letra que tenga los caracteres del mismo tamaño como: courier.

Gracias, probare las sugerencias de duilioisola.

SI heroe555, utilizo report dot-matrix, y utiliza el font courier, aunque me he fijado que esta letra viene por defecto en 12pt y noto que el fastreport da la posibilidad de reducir este tamaño hasta 8pt en los reportes dot-matrix, aprovechare esto para probar si disminuyendo el font, saldria bien utilizando los drivers de fabrica del star sp500.

Sobre imprimir directamente al puerto del printer, me parece el modo mas eficiente para tener el control de todo lo que se hace, el unico inconveniente en mi caso, es que cualquier modificacion del ticket conlleva a modificar el codigo fuente, y no resulta factible cuando tenemos varios clientes diferentes o uno solo que piden pequeños cambios constantes en los formatos, siempre he sido partidario de tener los reportes separados de la aplicacion.

erickperez6
06-10-2011, 14:59:46
Bueno, he resuelto el problema utilizando los drivers del printer en cuestion, es decir, ya no salen las letras grandes, en fastreport hay que tener algo presente al momento de trabajar con reportes dot matrix, y es que debemos incluir en la aplicacion un componente de la paleta de fastreport llamado frxDotMatrixExport, segun la documentacion es para que salgan los reportes dot matrix 100% en formato texto, si no ponemos este componente, los reportes siempre saldran en modo grafico aunque creeamos un reporte dot matrix. Realmente no le veo sentido de separar esta propiedad de imprimir los reportes dot matrix en texto utilizando en otro componente, pero bueno, ellos sabran.

Un TIP que aprendi que quizas le sea de ayuda a alguien en las impresiones de los ticket de punto de venta:

Siempre utilizar los drivers oficiales de los printers, si utilizamos otro como por ejemplo el generic text only que trae windows, las impresiones saldran bien pero nunca vamos a poder utilizar las funciones especiales, como abrir gavetas, cambiar las propiedades del font (condensada, negritas, italicas, etc.), tampoco no nos responderan todos o algunos comandos de escapes del printer para realizar operaciones especiales.

Casimiro Notevi
06-10-2011, 16:10:46
Siempre utilizar los drivers oficiales de los printers, si utilizamos otro como por ejemplo el generic text only que trae windows, las impresiones saldran bien pero nunca vamos a poder utilizar las funciones especiales, como abrir gavetas, cambiar las propiedades del font (condensada, negritas, italicas, etc.), tampoco no nos responderan todos o algunos comandos de escapes del printer para realizar operaciones especiales.
Por supuesto ;)

fjcg02
06-10-2011, 16:43:04
Has leido este post ??

http://clubdelphi.com/foros/showthread.php?t=17978&highlight=bueno+malo+impresora

Saludos

erickperez6
06-10-2011, 17:40:29
Has leido este post ??

http://clubdelphi.com/foros/showthread.php?t=17978&highlight=bueno+malo+impresora

Saludos

No lo habia visto o mejor dicho, no lo habia encontrado. Aunque se centran en buscar soluciones especificamente para QuickReport, la verdad es que se habla alli de temas interesantes de conocimiento general sobre las impresiones en los printer matriciales importantes, gracias.

fjcg02
07-10-2011, 09:14:24
No lo habia visto o mejor dicho, no lo habia encontrado. Aunque se centran en buscar soluciones especificamente para QuickReport, la verdad es que se habla alli de temas interesantes de conocimiento general sobre las impresiones en los printer matriciales importantes, gracias.

De nada, aunque cuando respondí me dí cuenta de que es algo más generérico, no orientado a impresoras de tickets.

Por otro lado, según tengo entendido, aunque o estoy del todo seguro, se está implantando en tema de opos, al menos con microsoft. Esto es una capa que se mete entre los dispositivos y el sw desarrollado que hace que las llamadas a las funciones de manejo de periféricos del tpv sean siempre iguales. La instalación y configuración de los opos permiten que los dispositivos funcionen a través de esta capa. Me refiero al cajón de dinero, display de precios, impresora de tickets, lector de códigos de barras, ...

http://msdn.microsoft.com/en-us/library/ms828083%28v=winembedded.10%29.aspx

POS: Point Of Sale = TPV o punto de venta.

Yo conozco ( de oidas ) los opos de ibm, hp también tiene, y seguramente otros fabricantes irán poniendo a disposición de los programadores sus opos específicos. En ms .NET funcionan, no sé si en algún otro entorno o con alguna otra tecnología.

Un saludo

dfarias
18-04-2012, 18:39:07
var Archivo: TextFile; begin AssignFile(Archivo, '\\pc\impresora'); Rewrite(Archivo); writeln(Archivo,'Línea a imprimir'); CloseFile(Archivo); end;


Esto funciona perfecto salvo cuando el listado es muy extenso. Existe alguna forma de controlar esto para que el listado se imprima completo?

Casimiro Notevi
18-04-2012, 18:44:31
var Archivo: TextFile; begin AssignFile(Archivo, '\\pc\impresora'); Rewrite(Archivo); writeln(Archivo,'Línea a imprimir'); CloseFile(Archivo); end;
Esto funciona perfecto salvo cuando el listado es muy extenso. Existe alguna forma de controlar esto para que el listado se imprima completo?

Por favor, si tienes alguna duda/pregunta/consulta/problema y no pertenece exactamente al tema que inició este hilo, entonces crea un nuevo hilo. Gracias por tu colaboración.

dfarias
19-04-2012, 18:06:06
Es que me referia justamente a un problema con las impresoras de ticket. En este caso que planteo es que al finalizar la venta en el tpv al querer sacar las estadisticas de productos vendedido sin son demasiados no sale completo el listado en la impresora por la cual tambien salen los tickets.

Casimiro Notevi
19-04-2012, 19:02:21
Es que me referia justamente a un problema con las impresoras de ticket. En este caso que planteo es que al finalizar la venta en el tpv al querer sacar las estadisticas de productos vendedido sin son demasiados no sale completo el listado en la impresora por la cual tambien salen los tickets.

Precisamente, están preguntando por algo muy particular, deberías crear un hilo nuevo con ese tema, tendrás más posibilidades de que encuentres ayuda.