GUI Windows Form C#

/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, 
   Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing.Printing;
using System.Drawing;
namespace BasicPrinting
{
    public class PrintSample
    {
        [STAThread]
        static void Main(string[] args)
        {
            PrintSample oSample = new PrintSample();
            oSample.RunSample();
        }
        public void RunSample()
        {
            Console.WriteLine("Printing to the default printer...");
            try 
            {
                PrintDocument pd = new PrintDocument(); 
                pd.PrintPage += new PrintPageEventHandler(this.PrintPageEvent);
                pd.Print();
            } 
            catch(Exception ex) 
            {
                Console.WriteLine("Error printing -- " + ex.ToString());
            }
            //Read input - to delay the closing of the DOS shell
            Console.ReadLine();
        }
        //Event fired for each page to print
        private void PrintPageEvent(object sender, PrintPageEventArgs ev) 
        {
            string strHello = "Hello Printer!";
            Font oFont = new Font("Arial",10);
            Rectangle marginRect = ev.MarginBounds;
            ev.Graphics.DrawRectangle(new Pen(System.Drawing.Color.Black),marginRect);
            ev.Graphics.DrawString(strHello,oFont,new SolidBrush(System.Drawing.Color.Blue),
                (ev.PageBounds.Right/2), ev.PageBounds.Bottom/2);
        }
    }
}