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;
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');
Producira el resultado (suponiendo que nombre valga 'Roberto' y edad 21:
BienvenidoHola Roberto Como esta21Roberto21Las sentencias obvias para evitar eso serian el uso de los writeln
writeln(lst,'Bienvenido');
En este otro caso la salida seria:
Bienvenido
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