Como mandar informacion a la impresora



En algun momento surge esta duda, ¿Como puedo mandar a imprimir la informacion de un archivo?, o simplemente imprimir cualquier informacion que el usuario propocione.

Modificado 04/09/2008
Primero que nada hay que reconocer que Pascal ya es un lenguaje muy poco usado de forma profesional sobre todo porque trabaja bajo MS-DOS pero es un muy buen lenguaje para dar el salto a un lenguaje visual en este caso Delphi que a mi parecer es mucho mas facil y manejable que otros hablando especificamente de Visual Basic (que como dicen, no es mas que Basic visual).

Todo esto viene porque la mayoria (si no es que todos) los programas que trabajan bajo MS-DOS son incapaces de hacer impresiones con impresoras USB por eso ahora voy a explicar como lograr estas impresiones para TODOS los programas de MD-DOS. Dado que no hay que escribir codigo las sentencias aqui explicadas aun son validas y funcionales. Como imprimir con impresoas USB

Antes de poder imprimir cualquier tipo de informacion en la impresora es necesario llamar a la unidad printer que trae pascal por defecto, esto obviamente en la clausula uses, de tal forma que el encabezado del programa queda de la siguiente forma

program Impresion;
uses crt,printer

La sentencias para poner informacion en la impresora es write o writeln colocando la palabra lst antes de la informacion que se desea imprimir.


program impresion;
uses crt,printer;

begin
	clrscr;
	write('Esto se queda en pantalla');
	write(lst,'Y esto va a la impresora');
end.

Muy sencillo ¿no?, al ser la impresora manejada con las sentencias write y writeln, se pueden manejar como ya sabes hacerlo, tanto para imprimir variables, o combinar las variables con las cadenas

program impresion;
uses crt,printer;

var
	nombre:string;
	edad:byte;

begin
	
    clrscr;
    write('Nombre: ');
    readln(nombre);
    write('Edad: ');
    read(edad);
    write(lst,'Bienvenido');                 {1}
    write(lst,'Hola ',nombre,' Como esta');  {2}
    write(lst,edad);                         {3}
    write(lst,nombre,edad);                  {4}
    
end.

En el comentario 1 vemos como se pueden imprimir cadenas de caracteres, en el 2 vemos la combinacion de cadenas con variables, en el 3 una variable y en el 4, 2 variables, es facil verdad

Como dije antes, las sentencias para imprimir write(lst), writeln(lst) producen los mismos resultados en papel que en pantalla, por lo tanto

write(lst,'Bienvenido');
write(lst,'Hola ',nombre,' Como esta');
write(lst,edad);
write(lst,nombre,edad);

Producira el resultado (suponiendo que nombre valga 'Roberto' y edad 21:

BienvenidoHola Roberto Como esta21Roberto21

Las sentencias obvias para evitar eso serian el uso de los writeln

writeln(lst,'Bienvenido');
writeln(lst,'Hola ',nombre,' Como esta');
writeln(lst,edad);
write(lst,nombre,edad);

En este otro caso la salida seria:

Bienvenido
Hola Roberto Como esta
21
Roberto21

Si se necesita dejar espacios en blanco entre linea y linea la solucion seria (como en la pantalla) dejar un writeln vacio, writeln(lst), los write(lst) no tienen nigun efecto, entonces si tenemos:


writeln(lst,'Bienvenido');
writeln(lst);
writeln(lst,'Hola ',nombre,' Como esta');
writeln(lst,edad);
writeln(lst);
write(lst,nombre,edad);

En el papel nos queda de esta forma

Bienvenido

Hola Roberto Como esta
21

Roberto21

Si llegara a surgir algun problema con la impresora, que no este conectada, que no haya papel, que se atasque, etc, el programa controlador de la impresora es la que se encarga de los mensajes.

No se te olvide que write y writeln se manejan de la misma forma para imprimir informacion en pantalla tanto como a la impresora, es decir imprimir, registros, punteros, arreglos, etc, en la pantalla es lo mismo que imprimirlos en papel, usando lst antes de la informacion que deseas imprimir.

Roberto Garcia
miramar567-otros@yahoo.com.mx


Descarga
imprime.zip

No quedo claro
Escribeme

COMO IMPRIMIR CON IMPRESORAS USB


Hasta ahora no he podido encontrar ningun codigo que permita hacer la impresion a USB directamente desde el programa ya compilado de Pascal y no creo que ningun otro lenguaje bajo MS-DOS pueda hacerlo. La unica solucion que he encontrado es utilizar un programa llamado redireccionador o capturador de puerto.

Estos programas lo que hacen es literalmente "capturar" la informacion que sale a traves de un puerto y mandarlo a otro, en este caso estos programas capturan toda la información que sale por el puerto LPT que es el unico que reconocen los programas en MS-DOS y lo mandan al puerto USB donde esta conectada la impresora. Dado que toda la informacion fluye a traves de los puertos tal cual no hay que hacer ningun cambio al codigo fuente.

Hay dos programas que yo he probado y me han funcionado muy bien estos son DOSPRN y DOS2USB son muy sencillos configurar por lo que aqui solo voy explicar el primero pero los dos funcionan de igual forma.

INSTALACION de DOSPRN

  1. Ejecutar el programa DOSPRN.EXE e instalarlo como con cualquier otro programa (seguir el metodo next, next, next)









    Despues de terminar la instalacion y si se dejo seleecionada la opcion "Launch DOSPRN" se vera un icono en la bandeja del sistema con la imagen de MS-DOS


    Despues de haber sido instalado lo unico que hay que hacer es especificar la impresora que se utilizara para la impresion para esto se hace clic derecho sobre el icono de la bandeja del sistema y seleccionar la opcion "Open"


    En la ventana principal del sistema solo se tiene que hacer clic en el boton "Select" en la seccion Printer para poder seleccionar la impresora en este caso la USB que se usara para dar salida a la impresion desde el programa MS-DOS.


    En la ventana que se abre solo se tiene que configurar la impresora USB, tamaño de letra horientacion etc. etc.


    Eso es todo lo que se tiene que hacer para poder hacer las impresiones en impresoras USB desde programas que funcionan en MS-DOS, las desventajas son obvias, para que los programas funcionen es necesario que se este ejecutando el programa capturador de puertos de los contrario la impresion no se realizara, ademas si se utiliza en programas comerciales es necesario comprar la licencia del programa capturador pero desafortunadamente hasta ahora es la unica forma que conozco para realizar las impresiones en este tipo de impresoras.
Aqui les dejo los programas capturadores de puerto mencionados para que los prueben y utilicen el que mas les guste.

DOSPRN.zip
Dos2Usb.zip


Regresar


inicio
Si llegaste a esta pagina desde un buscador
haz click aqui para ir a la pagina principal