Melody Hajian
Melody Hajian

Reputation: 285

Printing a Document

I want to print my TextBox and here is my code:

private void MenuItemPrint()
{
        if (FileName != "")
        {
            PrintDocument document = new PrintDocument();
            document.PrinterSettings.PrintFileName = FileName;
            document.Print();
        }
}

and it doesn't work. What should I do?

Upvotes: 5

Views: 28386

Answers (3)

Sudhakar Tillapudi
Sudhakar Tillapudi

Reputation: 26209

Try This:

private void MenuItemPrint()
{
   if (!FileName.Trim().Equals(""))
   {                        
     using(PrintDocument pd = new PrintDocument())
     {
        using(PrintDialog printDialog=new PrintDialog())
        {
          if(printDialog.ShowDialog()==DialogResult.Yes)
          {
          pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);                        
          pd.Print();
          }
         }
      }
    }
 }
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
  ev.Graphics.DrawString(FileName, new Font("Arial", 10), Brushes.Black,
                       ev.MarginBounds.Left, 0, new StringFormat());
 }

Upvotes: 5

Thilina H
Thilina H

Reputation: 5810

Just try with following code

private void MenuItemPrint()
 {
   if(!string.IsNullOrEmpty(FileName.Trim())
   {
    PrintDialog printdg = new PrintDialog();

    if (printdg.ShowDialog() == DialogResult.OK)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrinterSettings = printdg.PrinterSettings;
        pd.PrintPage += PrintPage;
        pd.Print();
        pd.Dispose();
     }
  }
}
private void PrintPage(object o, PrintPageEventArgs e)
{
   e.Graphics.DrawString(FileName, new Font("Arial", 20), Brushes.Black, 10, 25);
}

Upvotes: 3

Daniel Abou Chleih
Daniel Abou Chleih

Reputation: 2469

You can use following code to print the content of a textbox with the selected printer:

private void PrintTextBoxContent()
{
    #region Printer Selection
    PrintDialog printDlg = new PrintDialog();
    #endregion

    #region Create Document
    PrintDocument printDoc = new PrintDocument();
    printDoc.DocumentName = "Print Document";
    printDoc.PrintPage += printDoc_PrintPage;
    printDlg.Document = printDoc;
    #endregion

    if(printDlg.ShowDialog() == DialogResult.OK)
       printDoc.Print();
}

void printDoc_PrintPage(object sender, PrintPageEventArgs e)
{
    e.Graphics.DrawString(this.textBox1.Text, this.textBox1.Font, Brushes.Black, 10, 25);
}

Upvotes: 4

Related Questions