How to Open a PDF File in C#

As one of the most popular formats for digital documents, PDF allows users to generate invoices, print, bank statements and so much more. PDFs also allow users to sign documents digitally, as well as provide secure authentication. IronPDF provides a package that helps users create, read and edit PDFs easily. In this article, we are going to generate a PDF file in C# using IronPDF and read the PDF using the Acrobat Reader /Adobe Reader. We are also going to read the PDF file in C# using IronPDF.

How to Open PDF in C#

  1. Open Visual Studio and install the IronPdf NuGet Package
  2. Adding reference to the code - enabling the use of available classes and functions
  3. Declare a common object for ChromePdfRenderer
  4. Using the RenderHtmlAsPdf function
  5. Using System.Diagnostics.Process.Start

1. Open Visual Studio and Install the NuGet Package

Open Visual Studio and go to the "File menu". Select "New Project", then select Console Application/Windows Forms/WPF Application. IronPDF can be used on all applications. You can also use it in apps such as Webform, MVC/MVC Core.

How to Open a PDF File in C#, Figure 1: Create a new project in Visual Studio Create a new project in Visual Studio

Enter the project name and select the file path in the appropriate text box. Then click the "Create" button. Next, select the required .NET Framework. Now the project will generate the structure for the selected application. If you have selected the console application, it will now open the Program.cs file where you can enter the code and build/run the application.

How to Open a PDF File in C#, Figure 2: Configure .Net project in Visual Studio Configure .Net project in Visual Studio

Next Install NuGet Package IronPdf

Left-click the project and a menu will pop up. Select NuGet Package Manager from the menu and search for IronPDF. Select the first result in the NuGet Package dialog and click the Install/Download option.

How to Open a PDF File in C#, Figure 3: Install IronPdf package in NuGet Package Manager Install IronPdf package in NuGet Package Manager

Alternatively:

In Visual Studio go to Tools -> NuGet Package Manager -> Package Manager Console

Enter the following code on the Package Manager Console tab.

Install-Package IronPdf

Now the package will download/install on the current project and it is ready to use in the code.

2. Adding Reference to the Code - Enabling the use of available classes and functions

Add the reference IronPdf to the code as shown below. This will allow us to use the class and functions available from IronPdf in our code.

3. Declare a Common Object for ChromePdfRenderer

Declaring a common object for ChromePdfRenderer will help you convert any web page or HTML snippet into a PDF. By creating a common object, we will be able to use it without creating any more objects of the same class. Which allows us to reuse the code more than one time. Multiple functions can be used to create PDF files. We can use strings, links, or HTML files and convert them into PDFs, which can then be saved to the desired location.

We can also use a static function without creating any object for the ChromePdfRenderer. The static function is as follows:

We can use any one of these static methods to generate a PDF file. We can also include the PDF document options such as margins, titles, DPI, headers and footers, text, etc. By using ChromePdfRenderOptions we can pass a parameter on any one of these static methods.

We can declare the ChromePdfRenderOptions as common or individual for every PDF document. It is very simple and easy to use. We are going to use any one of the non-static functions to generate a PDF file and save it to a default location.

4. Using the RenderHtmlAsPdf

We can use any one of the above IronPDF functions to create a PDF. If you are using the function name RenderHtmlAsPdf then pass any string as a parameter and then use the SaveAs function to save the PDF on the desired file path. While using the SaveAs function. we need to pass the filename and location as a parameter, or if we are using a Windows application, we can use the SaveAs dialog to save the PDF file to the desired location. With the help of an HTML string, we can format the PDF document. Also, we can use CSS for the text design, and we can use any HTML tag to design a PDF document, as IronPDF does not have any restrictions on using HTML tags.

When we are using large HTML text it is difficult to add all the HTML text to the text box, so we can use another method which we have referred to above as RenderHtmlFileAsPdf which will help us to convert all the HTML into a PDF document. With this method, we can add large HTML files. Also, we can include the external CSS file in these HTML files, as well as external images, etc.

IronPDF also helps us to print the data from any links using the RenderUrlAsPdf function. This function processes the link to generate a PDF and saves the PDF files to the desired file path using the SaveAs function. This IronPDF function will include the CSS and all the images available on the site.

The following code shows an example of the IronPDF function.

ChromePdfRenderer Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderHtmlAsPdf("Hello IronPdf");
var OutputPath = "DemoIronPdf.pdf";
pdf.SaveAs(OutputPath);
System.Diagnostics.Process.Start(OutputPath);
ChromePdfRenderer Renderer = new ChromePdfRenderer();
var pdf = Renderer.RenderHtmlAsPdf("Hello IronPdf");
var OutputPath = "DemoIronPdf.pdf";
pdf.SaveAs(OutputPath);
System.Diagnostics.Process.Start(OutputPath);
Dim Renderer As New ChromePdfRenderer()
Dim pdf = Renderer.RenderHtmlAsPdf("Hello IronPdf")
Dim OutputPath = "DemoIronPdf.pdf"
pdf.SaveAs(OutputPath)
System.Diagnostics.Process.Start(OutputPath)
VB   C#

The above example shows how we can use the IronPDF function to generate a PDF file from a string. In the above code, we have created an instance object for the ChromePdfRender, and then by using the instance object with the help of RenderHtmlAsPdf we generate the PDF file. Then, by using the SaveAs IronPDF function we can save the PDF file on the given path. If we don't specify a file path, it will be saved at the execution location in the program.

5. Using System.Diagnostics.Process.Start to preview the PDF file

For this last step, we are using System.Diagnostics.Process.Start to preview a PDF file. This function invokes the command line function to open the PDF file from the path. If we have a PDF reader it will open the saved PDF file in the reader. If we do not have a PDF reader it will open with a dialog, and from the dialog, we need to select the program with which to open the PDF.

How to Open a PDF File in C#, Figure 4: The PDF file showed in a default PDF Reader The PDF file showed in a default PDF Reader

We can read PDF files using IronPDF, and this will read the PDF document line-by-line. We are even able to open a password-restricted PDF file using IronPDF. The following code demonstrates how to read a PDF document.

pdf = PdfDocument.FromFile("encrypted.pdf", "password");
//Get all text to put in a search index string
AllText = pdf.ExtractAllText();
IEnumerable<System.Drawing.Image>
AllImages = pdf.ExtractAllImages();
find the precise text and images for each page in the document
for (var index = 0; index < pdf.PageCount; index++) {
    int PageNumber = index + 1;
    string Text =pdf.ExtractTextFromPage(index);
    IEnumerable<System.Drawing.Image> Images = pdf.ExtractImagesFromPage(index);
}
pdf = PdfDocument.FromFile("encrypted.pdf", "password");
//Get all text to put in a search index string
AllText = pdf.ExtractAllText();
IEnumerable<System.Drawing.Image>
AllImages = pdf.ExtractAllImages();
find the precise text and images for each page in the document
for (var index = 0; index < pdf.PageCount; index++) {
    int PageNumber = index + 1;
    string Text =pdf.ExtractTextFromPage(index);
    IEnumerable<System.Drawing.Image> Images = pdf.ExtractImagesFromPage(index);
}
pdf = PdfDocument.FromFile("encrypted.pdf", "password")
'Get all text to put in a search index string
AllText = pdf.ExtractAllText()
Dim AllImages As IEnumerable(Of System.Drawing.Image) = pdf.ExtractAllImages()
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'find the precise text @and images for @each page in the document for(var index = 0; index < pdf.PageCount; index++)
'{
'	int PageNumber = index + 1;
'	string Text =pdf.ExtractTextFromPage(index);
'	IEnumerable<System.Drawing.Image> Images = pdf.ExtractImagesFromPage(index);
'}
VB   C#

The above code shows how we can read PDF files using IronPDF. IronPDF first reads the PDF document from the entered string filename and it also allows users to include a password if there is one. It will read all the lines. This is very useful when we need to get data from a PDF, as it reduces the amount of manual work and does not require any human supervision.

Check out our code samples on passwords and security handling.

Conclusion

IronPDF provides a simple and easy way to create a PDF with straightforward steps. The IronPDF library can be used in various environments such as Windows Forms, Mobile apps, and web apps using .NET Framework or .Net Core latest version. We don't need a separate library for each platform. We only need IronPDF to generate the PDF.

IronPDF offers a free trial key, and you can currently buy five products from Iron Software for the price of two

You can download a C# file project to help get started with the IronPdf package.