Doug Hauf
Doug Hauf

Reputation: 3213

Print .rtf or .txt file from PRINT button?

I am making a simple work note pad test program. I want to be able to click on a menu item in the menutool bar (Print) and have the document print to my printer. The following code is what I use but I am not sure if this is all that I need for a simple print. I am new to C# and thus not complete familiar with the printDocument class.

private void printToolStripMenuItem_Click(object sender, EventArgs e)
        {


       try 
       {
           StreamReader streamToPrint = new StreamReader
              ("C:\\My Documents\\MyFile.txt");
           try 
           {
              Font printFont = new Font("Arial", 10);
              PrintDocument pd = new PrintDocument();
              pd.PrintPage += new PrintPageEventHandler(myFileName);
              pd.Print();
           }  
           finally 
           {
              streamToPrint.Close();
           }
       }  
       catch(Exception ex) 
       {
           MessageBox.Show(ex.Message);
       } 

Upvotes: 0

Views: 1293

Answers (1)

Sudhakar Tillapudi
Sudhakar Tillapudi

Reputation: 26209

Problem : You are not handling the PrintPagEvent properly.

Solution : to print the document you need to handle the PrintPageEvent properly by writing the PrintPageEvent Handler.

    String content="";  
    Font printFont = new Font("Arial", 10);
    private void printToolStripMenuItem_Click(object sender, EventArgs e)
    {
       try 
       {
              content= File.ReadAllText("C:\\My Documents\\MyFile.txt");
              PrintDocument pd = new PrintDocument();
              pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
              pd.Print();
       }  
       catch(Exception ex) 
       {
           MessageBox.Show(ex.Message);
       } 
    }
     private void pd_PrintPage(object sender, PrintPageEventArgs ev)
     {
       ev.Graphics.DrawString(content,printFont , Brushes.Black,
                       ev.MarginBounds.Left, 0, new StringFormat());
     }

Upvotes: 1

Related Questions