SIGN UP MEMBER LOGIN:    
ARTICLE

Printing Text File in C#

Posted by Mahesh Chand Articles | Printing in C# June 07, 2007
In this article, you will learn how to print a text file in C#. The attached project lets you browse and open a text file and print it to a printer.
Reader Level:
Download Files:
 

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 namespace.

 

using System.IO;

using System.Drawing.Printing;

 

Write the following code on Print button click event handler.

 

string filename=textBox1.Text.ToString();

//Create a StreamReader object

reader = new StreamReader (filename);

//Create a Verdana font with size 10

verdana10Font = new Font ("Verdana", 10);

//Create a PrintDocument object

PrintDocument pd = new PrintDocument();

//Add PrintPage event handler

pd.PrintPage += new PrintPageEventHandler(this.PrintTextFileHandler);

//Call Print Method

pd.Print();

//Close the reader

if (reader != null)

reader.Close();

 

And add the following method to the class.

 

private void PrintTextFileHandler (object sender, PrintPageEventArgs ppeArgs)

{

//Get the Graphics object

Graphics g = ppeArgs.Graphics;

float linesPerPage = 0;

float yPos = 0;

int count = 0;

//Read margins from PrintPageEventArgs

float leftMargin = ppeArgs.MarginBounds.Left;

float topMargin = ppeArgs.MarginBounds.Top;

string line = null;

//Calculate the lines per page on the basis of the height of the page and the height of the font

linesPerPage = ppeArgs.MarginBounds.Height/

verdana10Font.GetHeight (g);

//Now read lines one by one, using StreamReader

while (count<linesPerPage &&

(( line = reader.ReadLine ()) != null))

{

//Calculate the starting position

yPos = topMargin + (count *

verdana10Font.GetHeight (g));

//Draw text

g.DrawString (line, verdana10Font, Brushes.Black,

leftMargin, yPos, new StringFormat());

//Move to next line

count++;

}

//If PrintPageEventArgs has more pages to print

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.

share this article :
post comment
 

c'est très bien votre projet mais si je veux imprimer les images,ou autre fichiers hors de fichiers Textes ,comment faire SVP

Posted by therese Huynh Oct 12, 2011

thanx for above code bt i need sum help this code is working right for .txt files bt whn i trying to print files with .doc or .docx or any other it is nt printing in right format or u can say it is printing sum other text lik binary text or anythig else

Posted by marut mahajan Apr 09, 2011

how to craete bill report in c# visual studio 2008 and also i kindly request u to explain how to include these two name space( using System.Printing;using System.Windows.Documents;)

Posted by ABDUL AZIZ Apr 08, 2011

I think you can setup your printer in a check mode where a blank check is being used instead of paper. Whatever you send to the check from application should be printed. I have not done it but it should work.

Posted by Mahesh Chand Dec 25, 2010

It's fine. But how to print on a Blank cheque in C#.

Posted by Mansur Ahmed Dec 22, 2010
Nevron Gauge for SharePoint
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
    Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Team Foundation Server Hosting
Become a Sponsor