In this article, you will learn how to print a text file in C#.
Step 1
Create a Windows Forms application using Visual Studio and add two Button and one TextBox controls to the Form. Change names for the Buttons to Browse and Print respectively.
Step 2
Write the following code on the Browse button click event handler.
- OpenFileDialog fdlg = new OpenFileDialog();
- fdlg.Title = "C# Corner Open File Dialog";
- fdlg.InitialDirectory = @"C:\ ";
- fdlg.Filter =
- "Text files (*.txt | .txt | All files (*.*) | *.*";
- fdlg.FilterIndex = 2;
- fdlg.RestoreDirectory = true;
- if (fdlg.ShowDialog() == DialogResult.OK)
- {
- textBox1.Text = fdlg.FileName;
- }
Step 3
Before we write code on the Print button click event handler, define two private variables on class level.
- private Font verdana10Font;
- private StreamReader reader;
Now import these two namespaces.
- using System.IO;
- using System.Drawing.Printing;
Write the following code on Print button click event handler.
- string filename=textBox1.Text.ToString();
-
- reader = new StreamReader (filename);
-
- verdana10Font = new Font ("Verdana", 10);
-
- PrintDocument pd = new PrintDocument();
-
- pd.PrintPage += new PrintPageEventHandler(this.PrintTextFileHandler);
-
- pd.Print();
-
- if (reader != null)
- reader.Close();
And add the following method to the class.
- private void PrintTextFileHandler (object sender, PrintPageEventArgs ppeArgs)
- {
-
- Graphics g = ppeArgs.Graphics;
- float linesPerPage = 0;
- float yPos = 0;
- int count = 0;
-
- float leftMargin = ppeArgs.MarginBounds.Left;
- float topMargin = ppeArgs.MarginBounds.Top;
- string line = null;
-
- linesPerPage = ppeArgs.MarginBounds.Height/verdana10Font.GetHeight (g);
-
- while (count<linesPerPage && (( line = reader.ReadLine ()) != null))
- {
-
- yPos = topMargin + (count * verdana10Font.GetHeight (g));
-
- g.DrawString (line, verdana10Font, Brushes.Black,leftMargin, yPos, new StringFormat());
-
- count++;
- }
-
- if (line != null)
- {
- ppeArgs.HasMorePages = true;
- }
- else
- {
- ppeArgs.HasMorePages = false;
- }
- }
Step 4
Now build and run the application. Click Browse button and open a text file and click Print button to print the file contents.