FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Impresión de una imagen en una impresora de tickets, códigos de escape
Estimados amigos.
Llevo ya algún tiempo buscando la información para poder sacar por una impresora de tickets una imagen previamente cargada. Esta imagen se imprimiría antes de la impresión del ticket por el puerto, Serie o paralelo. Existen unos códigos de escape para la impresión de esta imagen preguardada, en este caso, al igual que la apertura del cajón o del corte automático, intento utilizar los códigos de escape que me figuran en el manual, pero no hace nada. Con la impresora viene un programita para cargar la imagen que sí imprime el logotipo pero tampoco he sido capaz de redireccionar el puerto y sacarlo en un fichero para así ver qué intenta mandar a la impresora y emularlo en el desarrollo. La impresora es Bematech TMAX-80, dice el distribuidor en España que tiene los mismos códigos que la impresora EPSON TM88IV. El código de escape que me figura en el manual es: Command GS / m Code (Hex) 1D 2F m Name Print downloaded bit image Que traducido a decimal es: 29 , 47 y 109 Ahora bien, buscando en internet, en el manual de la Impresora SAMSUNG SRP-350 pone la misma codificación, pero observaréis que la letra "m" no se convierte sino que parece ser un intervalo, algo que no figura en el manual original... :/ GS / m Imprime la imagen descargada por bit. Decimal 29 47 m [Rango] 0 ≤m ≤3, 48 ≤m ≤51 [Descripción] Imprime una imagen por bit descargada utilizando el modo especificado por m. m selecciona un modo de la siguiente tabla : m Modo 0, 48 Normal 1, 49 Doble ancho 2, 50 Doble altura 3, 51 Cuádruple Finalmente la rutina de impresión final os la pongo, lo último que he puesto, es decir, el código que marca 29,47 y luego el modo, 0 y 48. Pero ya no se me ocurre más que hacer. He probado con todos... Para el puerto serie: Código:
Writeln(Impresora,chr(29)+chr(47)+chr(0)+chr(48)) Código:
Writeln(Impresora, #29+#47+#0+#48) De antemano muchas gracias. Saludos. |
#2
|
|||
|
|||
¿Alguien ha realizado algo parecido? he hecho todo tipo de pruebas pero sigue sin sacarlo...
¿Alguien sabe sino la forma de capturar la salida a un fichero? algo parecido a redireccionar la salida del LPT1 a un fichero, así de esta manera, puedo ver lo que le mandaría a la impresora el software que viene con ella y poder lanzarlo desde Delphi cuando quieran imprimir la imagen descargada. ¿? |
#3
|
|||
|
|||
Una idea que he probado es colocar otra impresora e imprimir la información que manda el propio software de la máquina, lamentablemente saca por pantalla todo el código ASCII por lo que entiendo es que no reconoce la orden, aunque era de esperar...
Sigo buscando... esperando alguna idea, no sé. |
#4
|
|||
|
|||
Lo vuelvo a subir por si alguien se le ha ocurrido algo... Gracias!
|
#5
|
||||
|
||||
Hasta donde recuerdo , creo que debes definir el gráfico primero :
GS*..... y luego GS/.. para imprimir
__________________
Because , I have a power. |
#6
|
||||
|
||||
Cita:
Código:
PRINT #1, CHR$(&H1B);"U";CHR$(1); PRINT #1, CHR$(&H1D);"/";CHR$(0);CHR$(&HA); ¬ Normal PRINT #1, CHR$(&H1D);"/";CHR$(1);CHR$(&HA); ¬ Double width
__________________
Because , I have a power. |
#7
|
|||
|
|||
Hola, gracias por la aportación, he intentado esto
Código:
//Definimos la gráfica. Writeln(Impresora,chr(29)+chr(42)+chr(0)); //GS * //Imprimimos. Writeln(Impresora,chr(29)+chr(47)+chr(0)+chr(65)); //GS / 0 A Normal width Código:
Writeln(Impresora,chr(29)+chr(42)+chr(0)); //GS * Writeln(Impresora,chr(27)+chr(85)+chr(1)); //ESC U 1 Writeln(Impresora,chr(29)+chr(47)+chr(0)+chr(65)); //GS / 0 A Normal width En fin. Gracias. Última edición por Jab fecha: 21-07-2010 a las 17:36:58. |
#8
|
|||
|
|||
Puedes probar el programa PORTMON de www[punto]sysinternals[punto]com , la descripción dice:
Cita:
|
#9
|
|||
|
|||
Hola, gracias amigo.
He instalado el programa y funciona, pero cuando lanzo el programita de la impresora que imprime en el puerto la cadena misteriosa, resulta que el PortMon bloquea la señal y se queda colgado el programita. Si uso el puerto serie, que no está bloqueado por el otro programa, me empieza a escribir hasta que se bloquea también, pero sale esto hasta donde se puede Código:
0.00005109 NVImg.exe IRP_MJ_CREATE Serial0 SUCCESS Options: Open 0.00000313 NVImg.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING 0.00000098 NVImg.exe IOCTL_SERIAL_SET_QUEUE_SIZE Serial0 SUCCESS InSize: 1024 OutSize: 1024 0.00000211 NVImg.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR 0.00000084 NVImg.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:-1 RM:0 RC:0 WM:0 WC:5000 0.00000141 NVImg.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS 0.00000137 NVImg.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS 0.00000117 NVImg.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS 0.00000310 NVImg.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING 0.00000105 NVImg.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS 0.00000141 NVImg.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS 0.00000196 NVImg.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR TXEMPTY CTS DSR RLSD BRK ERR RING 0.00000128 NVImg.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS 0.00000000 NVImg.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 0.00000120 NVImg.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS 0.00000069 NVImg.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS 0.00000810 NVImg.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 9600 0.00000373 NVImg.exe IOCTL_SERIAL_SET_DTR Serial0 SUCCESS 0.00000248 NVImg.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 0.00000089 NVImg.exe IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:1a ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 0.00000280 NVImg.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:9 Replace:80 XonLimit:256 XoffLimit:256 En fin, esto es frustrante. Gracias de todas maneras. |
#10
|
|||
|
|||
confirmame
Confirmame lo qe kieres es imprimir una imagen por un pto paralelo no entiendo bien que es lo que desea.
|
#11
|
|||
|
|||
Cita:
Si lees el hilo creo que está claro si sabes de lo que estamos escribiendo, se refiere a los códigos de escape que mediante una instrucción software genera un pulso mecánico en la impresora. Normalmente estas instrucciones se lanzan mediante el puerto de conexión de la impresora, da igual si es paralelo o serie, siempre funcionan. Existen unos estandarizados para la apertura del cajón que lanza un código y genera un pulso que permite la apertura mecánica del cajón portamonedas. Lo mismo sucedería para el corte automático. El problema reside que para lanzar la rutina de impresión del logotipo previamente cargado en la memoria de la impresora, el código facilitado por el manual es incompleto. He realizado todo tipo de pruebas, mirado en muchas Webs y aunque hay alguna más completa que otra, no funcionan los códigos de escape facilitados, por eso entiendo que hay algún código que no he hecho. PPB acertó bastante pero ese código tampoco va, no el código en sí, sino la secuencia, posiblemente sea una tontería, como lanzar previamente un código de inicialización, lo que fuera. Lo que sí sé es que un distribuidor nacional de esas impresoras no lo conoce y su servicio técnico me indica que es igual que la estándar, algo que no es cierto. Como conclusión, he decidido dejar el tema aparcado y buscar una solución aparte, imprimir mediante un report gráfico y lanzarlo con los drivers de la propia impresora. El problema es que, además de tener que instalar los drivers te limita muchísimo, ya que según el sistema operativo que tengas instalado, no te permite operar con el puerto serie o paralelo. De hecho yo trabajo habitualmente contra el puerto y no necesito tener instalado ningún driver de impresora para imprimir un ticket, abrir el cajón, etc. eso lo hace compatible con el 100% de las impresoras. Saludos. |
#12
|
|||
|
|||
ok gracias por tomar tu tiempo y contestar, nada espero que resuelva
|
#13
|
|||
|
|||
Cita:
Ayer estuve haciendo alguna prueba con el report gráfico pero es un lío, no sé que haré, he visto en sitios las impresoras como imprimen los logos y luego en formato texto el resto del ticket, pero bueno, no soy capaz de solucionar el problema... |
#14
|
|||
|
|||
a ponernos en contacto
Me gustaria dentro de los posible que nos pongamos en contacto por el msn y asi podemos entre los dos y par de amigos que tengo buscarle la vuelta a eso.
mi correo es carlosjimenez19@hotmail.com me puede agregar y asi podemos ver que se hace y podemos intercambiar ideas, si estas deacuerdo. |
#15
|
|||
|
|||
Hola Carlos, gracias por tu aportación, estos días estoy esperando qué solución me dan unos compañeros que tienen relación con el mayorista en España, a ver si pueden contactar con el fabricante, si me dan una solución viable la pondré aquí. En otro caso tengo la solución del Quickreport lanzado por los drivers de la impresora y luego posteriormente todo lo que venga, en este caso, es una mala solución pero no hay otra.
No uso el MSN, ni messenger, lo siento. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Impresion de tickets en FastReport c/ codigo de barras en impresora termica | hmoner | Impresión | 1 | 01-04-2010 20:34:22 |
Impresión de recibos en impresora de tickets fiscales Hasar | Mauro® | Impresión | 1 | 27-10-2008 03:04:51 |
impresion grafica mediante codigos de escape | emimarz | Impresión | 6 | 06-09-2007 21:03:22 |
Impresión Codigos Escape Zebra LP 2844 | comba | Impresión | 2 | 08-02-2006 22:46:47 |
Codigos Escape Impresora Sansumg | serhasae | Varios | 3 | 05-09-2005 10:40:17 |
|