none
Aus der MSDN Hotline: Drucken mit Druckerauswahl (Windows Forms, C#) RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt:
    Mit meiner Anwendung kann man schon Dokumente ausdrucken. Ich möchte aber noch zusätzlich die Möglichkeit zur Druckerauswahl anbieten. Wie kann ich das implementieren?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:
    Im Foreneintrag 

    Aus der MSDN Hotline: Drucken eines Windows Forms Fensters ohne die Rahmen

    vom 2. Dezember 2009 haben wir bereits besprochen, wie man am Einfachsten die Form einer Windows Forms Anwendung ausdrucken kann. Jetzt werde ich dieses Beispiel um die Druckerauswahlfunktionalität erweitern. Dafür wird das Control-Element PrintDialog verwendet.

    public partial class Form1 : Form
    {
        private Bitmap screenshot;
        PrintDocument printDocument1 = new PrintDocument();
    
        public Form1()
        {
            printDocument1.PrintPage += new PrintPageEventHandler(printDocument1_PrintPage);
                InitializeComponent();
        }
    
        private void printButton_Click(object sender, EventArgs e)
        {
    
            screenshot = new Bitmap(this.Width, this.Height);
    
            foreach (Control c in this.Controls)
            {
                Rectangle r = new Rectangle(c.Left, c.Top, c.Width, c.Height);
                c.DrawToBitmap(screenshot, r);
            }
    
            printDialog1.AllowSomePages = true;
            printDialog1.ShowHelp = true;
            printDialog1.Document = printDocument1;
    
            DialogResult result = printDialog1.ShowDialog();
    
            if (result == DialogResult.OK)
            {
                printDocument1.Print();
            }
    
        }
    
        private void printDocument1_PrintPage(System.Object sender,
               System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(screenshot, 0, 0);
        }
    
    }

    Mehr Informationen über dieses Beispiel und die Klasse PrintDialog findet man auf den folgenden Webseiten:

    1. MSDN: PrintDocument.Print Method
    2. MSDN: PrintDialog-Klasse
    3. Aus der MSDN Hotline: Drucken eines Windows Forms Fensters ohne die Rahmen

    Viele Grüße,
    Atanas Dimitrov
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline 
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen sowie die allgemein gültigen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    • Verschoben Filip Dimitrov Freitag, 25. Juni 2010 13:23 MSDN Hotline Forum (aus:Aus der MSDN Hotline: Häufig gestellte Fragen und deren Antworten)
    Mittwoch, 24. März 2010 15:20