InicioCiencia Educacion.Net C# Impresión de Etiquetas/Docs (printdocument)

.Net C# Impresión de Etiquetas/Docs (printdocument)

Ciencia Educacion10/5/2012


Hoy lo que vamos a intentar es imprimir directamente una etiqueta sin utilizar Crystal Reports y utilizando la clase PrintDocument.

ESPACIOS DE NOMBRES NECESARIOS

using System.Drawing;
using System.Drawing.Printing;


IMPRIMIR Y PREVISUALIZAR UN DOCUMENTO

Lo primero que vamos a definir es un método que nos permita imprimir el documento

C#:

private void btnPrint_Click(object sender, EventArgs e)
{
printDialog1.Document = new PrintDocument();
PrintPreviewDialog VistaPrevia = new PrintPreviewDialog();

DialogResult result = printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
printDialog1.Document.PrinterSettings = printDialog1.PrinterSettings;
printDialog1.Document.PrintPage += PrintPage;
VistaPrevia.Document = printDialog1.Document;
VistaPrevia.ShowDialog();
printDialog1.Document.Print();
}
}


Lo que hemos realizado aquí es instanciar el documento como PrintDocument y una VistaPrevia como Dialogo de vista Previa (+info)
como hemos comenzado por el tejado, ahora lo que tenemos que definir es QUÉ queremos imprimir, que será el PrintPage que pasamos como parámetro.
Aquí tenemos varias opciones
Para escribir un texto, hemos de informar del texto, la fuente y tamaño, el formato de la fuente y finalmente la posición. Para finalmente utilizar el metodo DrawString

C#:

// Draw barcode.
barcodeControl1.Barcode.Draw(ev.Graphics);

// Draw title
String drawString = "Esto es una Prueba del texto";

// Create font and brush.
Font drawFont = new Font("Arial", 12);
SolidBrush drawBrush = new SolidBrush(Color.Black);

// Create point for upper-left corner of drawing.
PointF drawPoint = new PointF(150.0F, 150.0F);

ev.Graphics.DrawString(drawString, drawFont, drawBrush, drawPoint);

IMPRIMIR UNA LINEA DE TEXTO

C#:

public void DrawLinesPoint(PaintEventArgs e)
{
// Create pen.
Pen pen = new Pen(Color.Black, 3);

// Create array of points that define lines to draw.
Point[] points =
{
new Point(10, 10),
new Point(10, 100),
new Point(200, 50),
new Point(250, 300)
};

//Draw lines to screen.
e.Graphics.DrawLines(pen, points);
}

IMPRIMIR UNA IMAGEN

C#:

public void DrawImage (
Image image,
Point[] destPoints
)


C#:


</code>Image newImage=Image.FromFile("D:imagen.png";

//Impresión de la imagen en tamaño original

ev.Graphics.DrawImage(newImage, 20, 80);

//Impresión de la Imagen asignando el tamaño

ev.Graphics.DrawImage(newImage, 20, 200, 20, 20);

<code>

Comentarios:

el primer comando es DrawImage(Imagen, coordenada X, coordenada Y), donde las coordenadas deben ser puntos enteros
el segundo comando DrawImage utilizado es (DrawImage(Imagen, coordenada X, coordenada Y, Tamaño ancho, Tamaño alto) donde tanto las coordenadas como los tamaños deben ser números enteros.

DIBUJAR UNA LINEA O RECTANGULO

Siguiendo todo lo anterior, dibujar una línea o un rectangulo es bastante similar.
la opción más sencilla para la línea es la siguiente:
Primero es necesario definir el puntero (pen), donde le indicaremos el color y el grosor del puntero
y posteriormente con DrawLine, indicaremos, el puntero, la coordenada inicial (X1,Y1) y la Coordenada final (X2,Y2)

C#:

Pen lapiz = new Pen(Color.Black,2);
ev.Graphics.DrawLine(lapiz,10, 200,200,200);


Para el rectangulo, es similar a la línea, si bien las coordenadas que facilitamos son las del punto inicial (esquina izquierda superior) y las del punto final (esquina derecha inferior)

C#:

// Create pen.
Pen blackPen = new Pen(Color.Black, 3);

// Create rectangle.
Rectangle rect = new Rectangle(0, 0, 200, 200);

// Draw rectangle to screen.
e.Graphics.DrawRectangle(blackPen, rect);
}

OTRAS OPCIONES

A parte de dibujar/imprimir todo lo anterior podemos realizar lo siguiente:
elipses
arcos
polígonos

Rellenar las figuras que hemos dibujado (fillrectangle, fillpolygon, fillregion, etc.)
Datos archivados del Taringa! original
3puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

e
edarksoul🇦🇷
Usuario
Puntos0
Posts45
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.