Anda di halaman 1dari 5

Como manipular una impresora con C#

En mucha ocasiones uno como desarrollador tiene la necesidad de incluir en las


aplicaciones la funcionalidad de enviar la informacin atravez de dispositivos de salida
como son: el disco duro, pantalla o impresora.
En esta ocasin tratare el como trabajar sobre la impresora ya que es un tema que a mas
de uno le ha quitado el sueo. Durante los siguientes renglones tratare de explicar de
forma amena como manipular la impresora para generar documentos, esto es de mucha
utilidad cuando necesitemos generar algn reporte como por ejemplo cuando tenemos un
sistema y necesitamos imprimir una la lista de todas las pelculas existentes de un video
club como block boster o cuando tenemos un programa que capture los datos para la
membreca de un gym y lo imprimimos para que el cliente firme su forma de solicitud, etc.
Bueno, este blog tiene como propsito explicarte paso a paso el cdigo necesario para
poder realizar todo lo descrito anteriormente para realizar dicha tarea.
*Nota: El cdigo descrito en este blog fue probado en Visual Studio 2005 y Visual Studio
2008 con los framework 2.0 y 3.0. sin problemas.
**Nota: Para usar este cdigo slo tendrs que copiar los segmentos de cdigo que se
encuentra en cada de las secciones que estn ms abajo, en un futuro pienso subir los
proyectos y el cdigo fuente, pero mientras tanto aqu esta un adelanto.
Como Imprimir una Cadena de Caracteres en C#
A continuacin explicare como imprimir una o varias lneas de caracteres a travs de la
impresora mediante el siguiente ejemplo:
Este es un programa que simulara la hoja de registro para un cliente y el cual contiene los
siguientes datos:
a) Nombre: Este campo estar compuesto del (de los) Nombre(s) y Apellido(s) del cliente.
b) Direccin: Este campo estar compuesto del nombre y nmero de la calle donde vive el
cliente.
c) Telfono: Este campo como indica contendr el nmero de telfono del cliente.
Tomen en cuenta que esto es solo un ejemplo para poder entender el cdigo, ya
depender de uno que otro tipo de informacin necesita manejar.
Primero crearemos un proyecto en Visual Studio, para quienes no sepan sigan las
siguientesinstrucciones:
1.-Abrir el Visual Studio desde el principio de todos los programas Microsoft Visual
Studio 2005 Microsoft Visual Studio 2005.
2.- En el panel de tipos de proyectos, se muestra una lista de los idiomas disponibles para
crear el proyecto en este caso se selecciona la opcin de Visual C # y despus
seleccionar la opcin Windows.
3. En el panel Plantillas, seleccione aplicacin forma de Windows.
4.- Despus hay que especificar Nombre en este caso llamaremos al proyecto
prueba_impresora, a la ubicacin de la aplicacin y por ltimo haga clic en el botn ok
como se ve a continuacin.

Despus creamos nuestra interface con 3 textbox y 3 labels ubicados en la caja de


herramientas y un botn como se muestra en la siguiente figura.

El siguiente paso consiste en agregar el siguiente cdigo en la forma.


**Nota: Antes de compilar el programa agregue los siguientes espacios de nombres:
Using System.Drawing.Printing;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;
namespace prueba_impresora
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//estas son las variables donde almacenaremos los datos del cliente
private string Nombre;
private string Direccion;
private string Telefono;
//la siguiente variable define el estilo de fuente y tamao a usar
//en este caso se utilizo Arial,12

private Font fuente = new Font(Arial, 12);


//A continuacion se agregara el siguiente mtodo
public void Imprimir_Solicitud()
{
//Este mtodo contiene dos componentes muy importantes los cuales son:
//PrintDocument y printDialog estos mtodos definen las propiedades de impresin
//como son: numero de copias, numero de paginas y seleccionar tipo de impresora
PrintDocument formulario = new PrintDocument();
formulario.PrintPage += new PrintPageEventHandler(Datos_Cliente);
PrintDialog printDialog1 = new PrintDialog();
printDialog1.Document = formulario;
DialogResult result = printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
formulario.Print();
}
}
//En esta funcin se define los datos a imprimir en este caso
//los datos de nuestros clientes y la posicin de los mismos en el documento
private void Datos_Cliente(object obj, PrintPageEventArgs ev)
{
float pos_x = 10;
float pos_y = 20;
Nombre = txtNombre.Text;
Direccion = txtDireccion.Text;
Telefono = txtTelefono.Text;
//Lo que vamos a imprimir
//Estas 3 prmieras lineas de codigo son las que definen los datos del cliente
ev.Graphics.DrawString(Nombre:, fuente, Brushes.Black, pos_x, pos_y, new
StringFormat());
ev.Graphics.DrawString(Direccion:, fuente, Brushes.Black, pos_x, pos_y + 15, new
StringFormat());
ev.Graphics.DrawString(Telefono:, fuente, Brushes.Black, pos_x, pos_y + 30, new
StringFormat());
//Estas ultimas 3 lineas de codigo son las que capturamos en nuestro formulario
ev.Graphics.DrawString(Nombre,fuente,Brushes.Black,pos_x+65,pos_y,new
StringFormat());
ev.Graphics.DrawString(Direccion, fuente, Brushes.Black, pos_x+75, pos_y+15, new
StringFormat());
ev.Graphics.DrawString(Telefono, fuente, Brushes.Black, pos_x+80, pos_y+30, new
StringFormat());
}
//En el botn que incluimos en nuestro pequeo formulario damos doble clic
//e invocamos nuestro mtodo Imprimir_Solicitud()
private void btnImprimir_Click(object sender, EventArgs e)
{
//Llamamos el mtodo que creamos dentro de nuestro formulario y listo.
Imprimir_Solicitud();
}
}
}

Ahora procedemos a compilar nuestro programa y probaremos el programa insertando los


datos solicitados por la aplicacin como se muestra en la siguiente figura.

Despus aparecer el cuadro de dialogo de la impresora en donde podemos ver la


impresora por default, el numero de copias, entre otras propiedades de impresin como
se muestra a continuacin.

En mi caso yo tengo instalado una impresora virtual el cual genera archivos pdf, despus
de seleccionar la impresora damos clic en el botn ok y por ultimo obtendremos nuestra
impresin como se ve en la siguiente figura.

Como Imprimir una Imagen en C#


En el ejemplo anterior explique como imprimir una o varias lneas de caracteres a travs
de la impresora a hora imaginen que a esa hoja se le necesita agregar la foto del cliente
en el formulario, esto es sencillo si agregamos un pictureBox en nuestro formulario, el cual
nos permitir visualizar en nuestra aplicacin la foto obtenida de nuestro cliente para este
ejemplo la imagen esta cargada previamente en el pictureBox como se muestra a
continuacin, pero en prximos artculos les mostrare como cargar una imagen guardada
en nuestro disco duro en un pictureBox.

Despus procedemos agregar en el mtodo Datos_Cliente el siguiente cdigo:


ev.Graphics.DrawImage(pictureBox1.Image, 90, 0, 70, 85);
//En la linea anterior definimos lo siguiente Imagen a imprimir, pos_x, pos_y,
// tamao ancho,tamao alto.
Y finalmente nos disponemos a imprimir nuestro formulario para obtener el siguiente
resultado como se muestra en la siguiente figura.

Conclusion
Despus de ver como podemos imprimir imgenes o lneas de texto lo nico que puedo
agregar es que las aplicaciones para este cdigo son varias por ejemplo desarrollar
aplicaciones de punto de venta en la cual mediante una impresora especial podamos
imprimir tickets o credenciales mediante el uso de impresoras especiales.
Por ultimo como consejo les recomiendo que para las pruebas que realicen con este
cdigo en lugar de usar la impresora y desperdiciar hojas mejor utilicen una impresora
virtual como es Virtual ImagePrinter, BullZip PDF Printer, doPDF 7 entre otros.
La ventaja es que se instala como una impresora ms y as lo tienes disponible en todos
los programas que permitan imprimir.
**Nota: todos estos impresoras virtuales son compatibles con los siguientes
sistemas operativos: Win2000/XP/2003/Vista/7 y son freeware.
Estos programas estn disponibles en internet para descargarlos puedes hacerlo en la
siguiente pagina:http://www.softonic.com/s/impresora-virtual-pdf
Lo nico que puedo decir es que cualquiera de estas maquinas virtuales es buena, yo uso
el doPDF 7 como impresora virtual pero chcalos y decide cual es el que te conviene
mas.

Anda mungkin juga menyukai