![]() |
Impresión códigos de escape por CMD
Las impresoras nunca han sido mi punto fuerte. Hace unos días uno de mis clientes se cambió a Windows 7 x64 y le dejó de funcionar mi DLL compilada en NetExpress 3.1 que imprimía los tickets.
La imresión se hacía de manera clásica: Código COBOL:
No logré hacerlo funcionar, siempre me daba FS=9. Luego encontré este artículo de MF, según el cual el Run-Time de NetExpress inferior a la versión 5.1 daba este problema: Runtime error 9/013 when attempting to print to LPTn: where the physical printer port is mapped via a NET USE statement on Windows 7 - Enterprise Server Knowledge Base - Enterprise Server - Micro Focus Community También en ese artículo dicen de utilizar las rutinas para imprimir vía Windows, pero yo nunca las he usado: Demo - The PC_PRINTER library routines - Net Express/Server Express Knowledge Base - Net Express / Server Express - Micro Focus Community Así que para solucionar rápidamente el tema, lo que hice fue escribir en un fichero TXT y luego lanzar el comando siguiente en PowerCOBOL: Código COBOL:
Y funciona. El problema es que han dejado de funcionar los códigos de escape (apertura de cajón, y comandos de diferentes tamaños de letras). ¿A qué se debe esto, es por el tema de pasar por un TXT en vez de llamar directamente la impresora o se debe configurar la impresora de alguna forma particular? Gracias de antemano por vuestras respuestas. Dasije, Rapinto, Nitzer, |
Yo utilizaba el dosprinter, hasta donde recuerdo, con el podias hacer de todo.
|
Kuk,
Tive esse problema e, se me recordo bem, tinha a ver com o ficheiro txt. Não me recordo bem mas penso que tínhamos que utilizar o "LINE SEQUENTIAL" em vez do SEQUENTIAL. Um deles não aceita códigos escape. Saludos, Rui |
Yo en NetCOBOL tengo realizado una rutina para impresión RAW, es el modo de que no filtra los códigos de escape en la impresión.
Es un ejecutable que pasas parametro del archivo de texto y el nombre de la impresora en Windows. |
Dasije, estoy intentando armar lo mismo pero en una DLL. Pero tengo problemas que aún no he resulto. Dependiendo del entorno de dónde lo hago (estoy mirando en C++, en NetExpress y directamente en PowerCOBOL) tengo diferentes problemas.
La DLL hecha en C++ me da GetLastError 87 que quiere decir "Parámetro incorrecto". Aunque lo hago según el ejemplo de MSDN, pasando en OpenPrinterA el último parámetro como NULL. En Power OpenPrinterA pasa bien pero no sé por qué razón en WrtiePrinter me da GetLastError 6 (Handle incorrecto)... ¿Puedes compartir el código de tu programa? Rapinto, lo escribo desde el principio como LINE-SECUENCIAL que es la opción por omisión. |
Código COBOL:
|
Kuk, yo lo trabajo de la siguiente manera y funciona en cualquier entorno:
Código COBOL:
|
Dasije, ¿puedes pasarme las LIB-s también o usas el fichero COBOL85.CBR con OpenPrinterA=winspool.drv etc?
fastpho, actualmente estoy haciendo algo parecido pero no me funciona con los códigos de escape. |
1 Archivos Adjunto(s)
Kuk te subo un ejemplo completo esta echo cobol97 a ver si te sirve
|
En el rar que te ha pasado fastpho incluye la LIB.
Igualmente es la misma rutina que yo uso, solo que yo he separado y traducido lo que realmente me interesaba. Saludos. |
Amigos, he aquí un "poltergeist" :D Los códigos de escape de antes siempre han funcionado, hasta que el cliente cambio de Windows. He mirado los códigos de escape en la página de Epson, y ahora aparecen otros, introduciendo los cuales todo ha vuelto a la normalidad. :yoquese:
No entiendo cómo es posible, tratándose de la misma impresora y los mismos controladores (provenientes del CD que vino con la impresora). :tonto: |
| La franja horaria es GMT +2. Ahora son las 14:46. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.