txtPrint 

Impresión en Windows desde cualquier programa DOS/Unix.

¿Qué es?

txtPrint es una herramienta que se utiliza para que los programas DOS y/o Unix puedan imprimir en cualquier impresora Windows de forma totalmente transparente para ellos. El único requisito es que estos programas sólo utilicen códigos de control compatibles con la impresora Epson FX-80 cuando envíen los datos al puerto de la impresora.

¿Cómo funciona?

Antes es necesario comprender cómo imprimen los programas de MSDOS.
Los programas imprimen en un puerto determinado, normalmente LPT1.
Este puerto está conectado a una impresora que recibe el texto y los carácteres de control, los interpreta y saca una hoja de papel con el texto impreso.
txtPrint funciona como una impresora virtual, recibe este mismo texto junto con los carácteres de control y los procesa construyendo páginas que se imprimen por la impresora de Windows que le especifiquemos.

Instalación

Hay que redirigir la salida a la impresora de los programas DOS hacia txtPrint para que éste la pueda procesar.
Los pasos generales que se pueden realizar en cualquier versión de Windows (95/98/Me/2000/XP) son:
Las siguientes instrucciones explican cómo realizar la instalación en Windows XP concretamente, y conseguir que un programa antiguo hecho en MSDOS pueda imprimir en cualquier impresora que tengamos configurada en Windows.
Supondremos que nuestro programa en MSDOS imprime a través del puerto LPT1.
  1. Si aún no lo tiene, descargue txtPrint desde http://sourceforge.net/project/showfiles.php?group_id=188881. Cree una carpeta en su unidad C: con nombre txtPrint y extraiga ahí el contenido del fichero descargado.
  2. Instale la utilidad RedMon (Redirection Port Monitor). Este programa es el encargado de recoger los datos que envia el programa MSDOS a la impresora y redirigirlos a txtPrint. La página principal de RedMon es http://www.cs.wisc.edu/~ghost/redmon/ ; y el programa en sí lo puede descargar desde ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/ghostgum/redmon17.zip
  3. Instale una nueva impresora en Windows, conectada localmente, de tipo Generico Sólo Texto (Generic / Text Only).
    El puerto a utilizar déjelo en LPT1 de momento, luego lo cambiaremos.
    Póngale de nombre: dosunix (por ejemplo).
    La impresora la compartiremos, y como nombre de impresora compartido también pondremos: dosunix
    Recuerde desactivar la opción de Imprimir una página de prueba.
  4. Vaya a Impresoras y faxes (panel de control) y localice la impresora que acaba de crear.
    Abra sus propiedades y en la pestaña "Puertos" pulse sobre el botón "Agregar puerto...".
    Seleccione el puerto "Redirected Port" y pulse el botón "Puerto nuevo..."
    Especifique un nombre para el puerto, por ejemplo, RPT1: y pulse el botón "Cerrar".
    Con el puerto recién creado seleccionado, pulse el botón "Configurar puerto..."
    En "Redirect this port to the program" introduciremos la ruta al programa txtPrint, que en principio será: c:\txtPrint\txtPrint.exe
    El cuadro de texto "Arguments for this program are: " lo dejaremos en blanco de momento. Para consultar la lista de parámetros aceptados por el programa, ejecute txtPrint.exe directamente.
    En "Output:" hay que seleccionar: "Program handles output"
    Active también la casilla "Run as user".
    Luego pulse el botón "Ok" y cierre el cuadro de diálogo de propiedades de la impresora.
    Con esto ya tenemos configurada la impresora virtual.
  5. Sólo queda hacer que todo lo que se imprima por el puerto LPT1 sea redireccionado a la nueva impresora.
    Para ello desde la linea de comandos (Inicio -> Todos los programas -> Accesorios -> Símbolo de sistema) ejecutaremos la orden:
    net use lpt1: \\%computername%\dosunix
A partir de ahora, cuando nuestro programa de MSDOS imprima, nos aparecerá una pantalla preguntándonos por la impresora de Windows a utilizar.
Si no queremos que nos pregunte, se puede forzar la utilización de una impresora determinada añadiendo el parametro /I "nombre impresora windows" en el cuadro de texto "Arguments for this program are:" en la configuración del puerto RPT utilizado. Si la opción que añadimos en este cuadro de texto es /ID, se utilizará la impresora predeterminada de Windows.

Características y limitaciones

El programa está escrito utilizando Harbour como lenguaje de programación. Se ha utilizado este lenguaje porque dispone de características que facilitan mucho la programación de la impresión en Windows. De todas formas, el proyecto acaba de nacer y no se descarta implementarlo utilizando otro lenguaje o herramientas distintas.

Sólo se han implementado un poco más de la tercera parte de los comandos de control disponibles en una impresora Epson FX-80. Así que, características como los gráficos y otras muchas aún no están disponibles.
Pero casi todas las más importantes ya se soportan:

Ayuda

Si necesita ayuda, o tiene algún comentario, petición, mejora, etc... que desee transmitir al autor del programa, puede utilizar el foro público "Help" del proyecto diponible en http://sourceforge.net/forum/forum.php?forum_id=663531

Si desea colaborar en el proyecto, también puede contactar con el autor a través del mismo foro público.
Quedan muchas cosas por hacer:
Así que, cualquier colaboración será bienvenida. :-)

Licencia

txtPrint
Copyright © 2007 Marcos Grau Magraner.

txtPrint es Software Libre. Usted puede redistribuirlo y/o modificarlo bajo los términos de la "GNU General Public License" como lo publica la "FSF Free Software Foundation", o (a su elección) de cualquier versión posterior.
txtPrint se distribuye con la intención de ser útil, pero SIN NINGUNA GARANTÍA; incluso sin la garantía implícita de USABILIDAD O UTILIDAD PARA UN FIN PARTICULAR. Vea la Licencia Pública General GNU para más detalles.
Debería haber recibido una copia de la Licencia Pública General  junto con este programa. Si no ha sido así, escriba a la Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA (o visite: http://www.gnu.org)

txtPrint is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
txtPrint is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA (or  visit the web site http://www.gnu.org/).

SourceForge.net Logo