C# - A PrintDialog komponens

forráskód letöltése
A PrintDialog komponens használatával lehetőségünk van arra, hogy a nyomtatási munka megkezdése előtt egy szabványos dialógon keresztül a felhasználó befolyásolhassa a nyomtatás alapvető tulajdonságait, így például azt, hogy álló, vagy fekvő oldalra szeretne-e nyomtatni.
Nyomtatáshoz egy PrintDocument komponenst használunk fel. Ennek PrintPage eseményénél kell megadnunk azt a kódot, mely elvégzi a kinyomtatandó dokumentum megjelenítését. Az egyszerűség kedvéért most csak egy ellipszist rajzolunk a papírra, így jól látható lesz, hogy az oldal melyre nyomtatunk az álló, vagy fekvő.
      protected void printDocument1_PrintPage (object sender, System.Drawing.Printing.PrintPageEventArgs e)
      {
        Pen pen = new Pen(Color.Red, 2);
        e.Graphics.DrawEllipse(pen, 100, 100, 600, 200);
        e.HasMorePages = false;        
      }
A nyomtatás indításához először meghívjuk a PrintDialog-ot, a ShowDialog függvényével. Ha ez a DialogResult felsorolt típus elemei közül az OK értékkel tér vissza, akkor a felhasználó az OK gombbal zárta a dialógot. Ekkor indítjuk csak a nyomtatást a PrintDocument komponens Print függvényének hívásával.
     protected void button1_Click (object sender, System.EventArgs e)
      {
        if (printDialog1.ShowDialog() == DialogResult.OK)
        {
          printDocument1.Print();
        }
     }
A helyes működéshez ez még nem lenne elegendő. A PrintDialog és PrintDocumentum komponenseket össze kell kötnünk, különben hiába állítunk be mondjuk fekvő lapra történő nyomtatást, a nyomtató komponens által szolgáltatott adatokra ez nem lenne hatással.
Ehhez tehát annyi a teendő, hogy a PrintDialog1 Document property-jénél ki kell választanunk a PrintDocument komponenst és máris kezdődhet a nyomtatás.