Win XP

Saludos... Tengo un programa que corre en DOS, cuando lo monto en una maquina con win XP corre bien, pero cuando mando a imprimir una factura tarda como 1 minuto en empezar a imprimir, si mando dos o más facturas continuas si me las imprime, pero la ultima siempre tarde muchísimo,... Pero si es una sola tarde mucho también, aveces me tengo que salir del modulo y volver a entrar ya que al salirme el modulo la imprime rapido y sin ningún problem... Necesito saber como puedo hacer para que me imprima rapido por el puerto lpt1 sin quedarse esperando tanto tiempo... Gracias

1 Respuesta

Respuesta
1
Asegurate que en la BIOS el puerto está configurado en el modo correcto (normalmente ECP/EPP). Si está en el modo correcto, juega con otros modos para asegurar la compatibilidad con tu aplicación antigua.
Ya intente modificando el puerto en la bios, pero me imprime igual, el problema es que se tarda mucho para imprimir...
Prueba entonces deshabilitando el servicio "Cola de impresión".
Probablemente, lo más acertado sería pensar en un problema de compatibilidad. Prueba los siguiente:
Si la aplicación requiere instalación previa, pinche botón derecho en el instalador, generalmente un fichero .exe, y seleccione "Propiedades". En la pestaña "Compatibilidad" marca la opción "Ejecutar este programa en modo compatibilidad", en el desplegable elige Windows 98 y marca todas las demás casillas de esa ventana. Una vez instalado o si no necesita instalación, haz exactamente lo mismo sobre el ejecutable del programa.
Ya me dirás si así ha habido suerte.
Ya he probado eso... y no me funciono..
Gracias, pero eso ya lo intente y no funciono, y me comentaron que debe ser algo de la cola ed impresión o algo así, tendría que ver como mandar imprimir directamente a la impresora, ya probé con la opción de impresora que dice no enviar a cola de impresión, pero debe de existir algún comando o algo así...
Bien. Bueno.. no es que me alegre de que no funcione, pero me gusta pelearme con dificultades de verdad, ya que promueven la capacidad creativa.
Ya hemos descartado problemas básicos de un usuario normal, ahora tendremos que meternos a fondo.
Para empezar prueba lo siguiente:
1.- En "Panel de control", "Impresoras". Botón derecho "Propiedades" en la impresora. En la pestaña "Opciones Avanzadas" marca la opción "Imprimir directamente en la impresora".
Prueba a ver que tal.
2.- Si no a funcionado, vuelve a dejar la configuración en el paso anterior como estaba, entra en la aplicación, imprime e INMEDIATAMENTE sal de la aplicación. ¿Se ha impreso con mayor velocidad al salir de la aplicación?.
3.- Si tampoco funciono el paso 2, repite el paso 1 y el 2 en conjunto, es decir, marca la opción del paso 1 y sal de la aplicación nada más imprimir.
4.- Si nada de lo anterior funcionó necesitaré los siguientes detalles:
Modelo de impresora.
Tipo de conexión al PC (Paralelo, serie, usb, red...).
Antigüedad de la aplicación en años y lenguaje de programación de la misma.
Mientras tanto, y si tu respuesta a tipo de conexión es diferente a "Puerto paralelo en LPT1" prueba lo siguiente:
Comparte la impresora en la red (con un nombre sencillo, sin espacios y/o caracteres raros). En DOS, utiliza el comando "net use" para asignar el recurso compartido a LPT1 (net use LPT1:\\ordenador\impresora) y vuelve a imprimir en la aplicación.
Saludos, y a ver si hay suerte!
De verdad muchísimas gracias por estar aquí conmigo ayudándome... sabes, eso ya lo he probado
ahora ... fíjate
2.- Si no a funcionado, vuelve a dejar la configuración en el paso anterior como estaba, entra en la aplicación, imprime e INMEDIATAMENTE sal de la aplicación. ¿Se ha impreso con mayor velocidad al salir de la aplicación?.
Si aplico este paso dos y me salgo de la aplicación si me imprime rapido, pero la idea es no tenerme que salir, me pasa con todas las impresoras que conecto, la conexión es puerto paralelo lpt1... Gracias...
Aunque no me has dicho en que lenguaje está hecha la aplicación, me atrevo a ponerte la siguiente conclusión:
Este error, aunque poco conocido, es bastante típico en el desarrollo de aplicaciones en DOS. La causa, es bastante simple: la aplicación abre el dispositivo LPT1 creando un buffer propio de tamaño igual a una página. Este buffer se acompaña de un tiempo máximo de espera o timeout por lo que la impresión solo empieza si se cumple una de las siguientes condiciones:
1.- Se completa una página.
2.- Se agota el tiempo de espera o timeout.
3.- Se libera el dispositivo, como al cerrar la aplicación (seguro que te preguntabas por qué te pedía que cerraras la aplicación inmediatamente).
¿Las únicas? ¿Soluciones? Que he comprobado que aceleran (aunque no solucionan el problema) la impresión:
1.- Ejecutar la aplicación en pantalla completa (ALT+INTRO en consola de comandos de Windows).
2.- Rellenar el espacio libre de la página con líneas en blanco para completarla y llenar así el buffer forzando su impresión.
3.- Recuerdo que en xenix, había una combinación de teclas para hacer un flush (liberado) del buffer de impresión y así imprimir inmediatamente. Busca o pregunta al desarrollador sobre esta combinación de teclas o comando en tu aplicación.
4.- Imprime a un fichero que posteriormente imprimirás desde otra aplicación (fue la opción más utilizada en momentos de transición a nuevas aplicaciones)
Aunque para mí, ninguna de la soluciones fue suficientemente gratificante en su momento y se requirió una reingeniería de la aplicación para permitir liberar el dispositivo de forma manual así como para implementar un buffer de tamaño personalizado. De esta manera podíamos controlar el momento de impresión y no de ninguna otra manera.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas