print file from c# code code example

Example 1: print file c#

/// I use this code for easily printing a .txt document.
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
        float yPos = 0;
        float leftMargin = ev.MarginBounds.Left;
        float topMargin = ev.MarginBounds.Top;
        ev.Graphics.DrawString(sr.ReadToEnd(), printFont, Brushes.Black,
           leftMargin, yPos, new StringFormat());
}
/// And to call it from a method:
private void CallPrint() {
	printFont = new Font("Arial", 15);
    sr = new StreamReader(@"MyFileToPrint.txt");
    PrintDialog printDlg = new PrintDialog();
    PrintDocument printDoc = new PrintDocument();
    if (printDlg.ShowDialog() == DialogResult.OK)
    {
    	printDoc.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    	printDoc.Print();
    }
}
/// This method usually won't work with rich text documents, etc. It also limits the text on one page, unless you want to add a word-wrapping function.

Example 2: print a file from C#

private void SendToPrinter()
{
   ProcessStartInfo info = new ProcessStartInfo();
   info.Verb = "print";
   info.FileName = @"c:\output.pdf";
   info.CreateNoWindow = true;
   info.WindowStyle = ProcessWindowStyle.Hidden;

   Process p = new Process();
   p.StartInfo = info;
   p.Start();

   p.WaitForInputIdle();
   System.Threading.Thread.Sleep(3000);
   if (false == p.CloseMainWindow())
      p.Kill();
}