Convert Text Document to PDF File

Description: 

About Classes used - 

#1: StreamReader class provides an access to read the data from Stream such as Text File.

#2: Document class allows creating a new instance for Creating PDF File.

#3: PdfWriter class, an instantaneous access to write a PDF document from an object of Document class. 

Namespace Required         -           System.IO,

iTextSharp,

iTextSharp.text,

iTextSharp.text.pdf 

Controls Used           -          

            1. TextBox Control (txtInput, txtOutput)

          2. Button Control (btnSelect, btnCreatePDF)         

Here I implemented the Code for converting Text Document into PDF Document using iTextSharp Tool.           

The Code:

1. Select the Text File (code for “Select File” Button).           

using (OpenFileDialog file = new OpenFileDialog())
{
    //Show the Dialog Box & Select the File
    file.ShowDialog();
    //Assign Input FileName to TextBox
    txtInput.Text = file.FileName;
}

//Assign Output FileName to TextBox

txtOutput.Text = (txtInput.Text).Replace(".txt", ".pdf");

Listing 1

2. Convert Text File into a PDF File (code for “Create PDF” Button).

//Read the Data from Input File

StreamReader rdr = new StreamReader(txtInput.Text);

//Create a New instance on Document Class

Document doc = new Document();

//Create a New instance of PDFWriter Class for Output File

PdfWriter.GetInstance(doc, new FileStream(txtOutput.Text,FileMode.Create));

//Open the Document

doc.Open();

//Add the content of Text File to PDF File

doc.Add(new Paragraph(rdr.ReadToEnd()));

//Close the Document

doc.Close();

MessageBox.Show("Conversion Successful....");

//Open the Converted PDF File

System.Diagnostics.Process.Start(txtOutput.Text);

Listing 2

3. Now execute the Application and see the result (Figure 1).  

Intended Result:

New Picture (1).png

Figure 1 

Summary:

In this piece of writing, using C# environment, we have seen how to convert the Text file into PDF file using iTextSharp Tool (A free PDF library ported from Java iText).