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:
- Instalar la utilidad RedMon.
- Instalar una nueva impresora "Genérica /
Sólo Texto" que utilice el puerto RPT proporcionado
por la utilidad RedMon. La impresora tiene que
estar compartida.
- Configurar este puerto para que llame a txtPrint.
- Redirigir el puerto LPT1 (o el que utilice nuestro programa
de MSDOS) a la impresora que hemos creado y tenemos compartida.
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.
- 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.
- 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
- 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.
- 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.
- 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:
- Tamaño de la fuente soportado: 10cpi, 12cpi y 17cpi (elite, pica y compressed)
- Aspecto de la fuente: negrita, cursiva, subrayado, subscript, superscript.
- Cambio del número de líneas por pulgada.
- Salto de línea variable
- Especificación de la longitud de la página
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:
- Completar la emulación total de la impresora Epson FX-80
- Preparar un programa de instalación que sea capaz de
ejecutar los pasos para instalar el programa en cualquier
versión de Windows de forma automática.
- Mejorar la documentación y realizar traducciones a otros idiomas (tanto del programa como de la documentación).
- .....
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/).