2011-04-21 72 views
28

Tengo una imagen en PictureBox y quiero imprimirla. Sin formato, sin nada, solo imprímalo.Imprimir imágenes C# .net

He estado buscando en Google, pero no tengo nada, solo personas imprimiendo formularios o textos o informes.

private string imgSrc; 

    public string ImgSrc 
    { 
     get { return imgSrc; } 
     set { imgSrc = value; } 
    } 

    public Id_Manager() 
    { 
     ImgSrc = "D:\\Foto.jpg"; 

     InitializeComponent(); 
     idPicture.Load(this.ImgSrc); 
    } 

Obviamente la imagen va a cambiar, pero por ahora solo me interesa imprimir esa imagen. Estoy guardando la url en una propiedad por si acaso. ¿Alguna ayuda?

Respuesta

50

El siguiente código utiliza el objeto PrintDocument en el que puede colocar una imagen en el documento de impresión y luego imprimirlo.

using System.Drawing.Printing; 
... 
protected void btnPrint_Click(object sender, EventArgs e) 
{ 
    PrintDocument pd = new PrintDocument(); 
    pd.PrintPage += PrintPage; 
    pd.Print();  
} 

private void PrintPage(object o, PrintPageEventArgs e) 
{ 
    System.Drawing.Image img = System.Drawing.Image.FromFile("D:\\Foto.jpg"); 
    Point loc = new Point(100, 100); 
    e.Graphics.DrawImage(img, loc);  
} 
+0

muchas gracias fue muy útil –

+0

en la última línea, que debe ser "img", no " ing ":-) – itsho

+12

NO se olvide de desechar" img "en printPage (...) de lo contrario, se quedará atrapado en la segunda impresión con IOException :-) – itsho

8

Usando la ubicación, tengo este método de extensión FileInfo que lo hace:

public static void Print(this FileInfo value) 
{ 
    Process p = new Process(); 
    p.StartInfo.FileName = value.FullName; 
    p.StartInfo.Verb = "Print"; 
    p.Start(); 
} 
Cuestiones relacionadas