How to convert HTML to PDF in ASP .NET using C#
In modern web applications, generating documents from HTML content is a common requirement. Whether you need to create invoices, reports, or any other types of documents, converting HTML to PDF can be accomplished efficiently with the IronPDF library in ASP.NET using C#.
Today, we will explore how to set up IronPDF and use it to convert HTML content into a PDF document.
How to Convert HTML to PDF in ASP.NET with IronPDF
- Create an ASP.NET project using Visual Studio or your IDE of choice.
- Install IronPDF and set up your license key.
- Create a new controller or page where you want to handle the PDF conversion.
- Write your conversion logic within the controller.
- Configure routing to allow access to your PDF generation action.
An Overview of IronPDF
IronPDF is a powerful PDF library that allows developers to read, create, and manipulate PDF documents. With a rich feature set and a quick, simple installation process, you can take your PDF projects to the next level in no time thanks to IronPDF. Its intuitive API is easy to learn, making it an ideal choice if you are looking to generate dynamic PDF documents, perform PDF security tasks, PDF annotations, etc., directly from your web application.
Features
- PDF conversion: IronPDF can convert HTML files to PDF, with its full support for modern web standards. You can be assured that IronPDF will consistently return pixel-perfect PDFs from your HTML pages. IronPDF can also convert PDF files from other formats such as DOCX, images, RTF, and more.
- PDF Generation: With IronPDF, you can generate PDFs from any web page, ASPX file, HTML string, or more.
- Security features: With IronPDF, you can always be assured that any sensitive PDF files are secure thanks to its security features. Use IronPDF to encrypt your PDF files, set passwords, and set permissions for your PDF files.
- PDF editing features: With IronPDF you can process existing PDF documents, edit them, and read PDF files with ease. IronPDF offers editing features such as adding headers and footers, stamping text and images onto the PDF pages, adding custom watermarks to the PDF, working with PDF forms, and splitting or merging PDF files.
Prerequisites
Before you start, ensure you have:
- Visual Studio or another C# development environment set up.
- IronPDF library installed. You can get it from NuGet or directly from the IronPDF website.
Create a New ASP.NET Project
Launch Visual Studio and select the ASP.NET project type that best suits your needs. For today's example, I will be creating an ASP.NET Core Web App (Model-view Controller).
Then, enter the name for your project and choose the location to house the project.
Finally, choose your .NET Framework for the project, and change any additional settings for the project such as the authentication type, or enabling container support and docker.
Create a Controller
To create a new controller to house our HTML to PDF code within, first right-click on the "Controllers" folder in the solution explorer and choose "Add -> Controller".
This will prompt a new window to open, where you can choose what form of controller you want to add to the project. We have picked an empty MVC Controller.
Finally, we give the new Controller a name and click "Add" to add it to our project.
Add HTML to PDF Conversion Code
Now that we have created our ASP.NET project, we can begin writing the code for converting HTML file content to a PDF. We will start with a simple example of HTML string to PDF, before looking at converting HTML content with customization.
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace IronPdfTest.Controllers
{
public class PdfController : Controller
{
// Action method to generate a PDF from HTML content
public IActionResult GeneratePdf()
{
// String of HTML code to be converted to PDF
string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";
// Creating a renderer to convert the HTML string to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Return the generated PDF file
return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
}
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace IronPdfTest.Controllers
{
public class PdfController : Controller
{
// Action method to generate a PDF from HTML content
public IActionResult GeneratePdf()
{
// String of HTML code to be converted to PDF
string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";
// Creating a renderer to convert the HTML string to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Return the generated PDF file
return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
}
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Namespace IronPdfTest.Controllers
Public Class PdfController
Inherits Controller
' Action method to generate a PDF from HTML content
Public Function GeneratePdf() As IActionResult
' String of HTML code to be converted to PDF
Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"
' Creating a renderer to convert the HTML string to PDF
Dim renderer As New ChromePdfRenderer()
' Convert HTML string to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Return the generated PDF file
Return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf")
End Function
End Class
End Namespace
ASP.NET MVC uses controllers to handle user requests. When a user navigates to a specific URL, ASP.NET will call a method in the controller associated with that route.
- PdfController is a class inheriting from Controller, meaning it can handle web requests and send responses.
- The GeneratePdf method inside this controller will handle a request to convert HTML into a PDF and return the result.
When a user visits a URL linked to the GeneratePdf action, the method executes.
IActionResult: This is the return type, representing the response that the web application will send back to the user. It could be a view (HTML page), file download, etc. In this case, it's a PDF file.
GeneratePdf() Method:
Inside the method, we define a string htmlContent that contains the HTML you want to convert to a PDF. For example,
"<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"
.We create a new instance of ChromePdfRenderer, which handles the conversion of HTML to PDF.
- The method RenderHtmlAsPdf() takes the HTML string and returns a PDF object.
Configure Routing
In an ASP.NET MVC application, you define routes that map URLs to controller methods (actions). For example, if you navigate to /Pdf/GeneratePdf in the browser, ASP.NET will look for the PdfController and call its GeneratePdf method. Ensure your routing configuration allows access to the GeneratePdf action. If you are using ASP.NET Core MVC, this is usually configured automatically. If you are using Web API, make sure your routes are properly set up.
Custom PDF Output
Now that we have the basics down, let's look at creating a PDF file from HTML content with some customization settings set for the output PDF. IronPDF provides a powerful set of PDF customization tools, such as margins, headers/footers, custom PDF sizing, and more.
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace IronPdfTest.Controllers
{
// Controller for our PDF converter
public class PdfController : Controller
{
// Action method to generate a customized PDF from HTML content
public IActionResult GeneratePdf()
{
// String of HTML code to be converted to PDF
string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";
// Creating a renderer to convert the URL to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Creating the cover page
PdfDocument cover = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>");
// Adding custom options for our final PDF
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3;
renderer.RenderingOptions.TextHeader.CenterText = "IronPDF";
renderer.RenderingOptions.TextHeader.FontSize = 12;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.FirstPageNumber = 2;
// Creating our main PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Appending the cover to the main PDF
pdf.InsertPdf(cover, 0);
// Return the customized generated PDF file
return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
}
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace IronPdfTest.Controllers
{
// Controller for our PDF converter
public class PdfController : Controller
{
// Action method to generate a customized PDF from HTML content
public IActionResult GeneratePdf()
{
// String of HTML code to be converted to PDF
string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>";
// Creating a renderer to convert the URL to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Creating the cover page
PdfDocument cover = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>");
// Adding custom options for our final PDF
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3;
renderer.RenderingOptions.TextHeader.CenterText = "IronPDF";
renderer.RenderingOptions.TextHeader.FontSize = 12;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.FirstPageNumber = 2;
// Creating our main PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Appending the cover to the main PDF
pdf.InsertPdf(cover, 0);
// Return the customized generated PDF file
return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf");
}
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Namespace IronPdfTest.Controllers
' Controller for our PDF converter
Public Class PdfController
Inherits Controller
' Action method to generate a customized PDF from HTML content
Public Function GeneratePdf() As IActionResult
' String of HTML code to be converted to PDF
Dim htmlContent As String = "<h1>Hello, IronPDF!</h1><p>This is a PDF generated from HTML.</p>"
' Creating a renderer to convert the URL to PDF
Dim renderer As New ChromePdfRenderer()
' Creating the cover page
Dim cover As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1>")
' Adding custom options for our final PDF
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A3
renderer.RenderingOptions.TextHeader.CenterText = "IronPDF"
renderer.RenderingOptions.TextHeader.FontSize = 12
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.FirstPageNumber = 2
' Creating our main PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Appending the cover to the main PDF
pdf.InsertPdf(cover, 0)
' Return the customized generated PDF file
Return File(pdf.BinaryData, "application/pdf", "generatedDocument.pdf")
End Function
End Class
End Namespace
Conclusion
Today we have taken a closer look at how HTML to PDF conversion can be used with ASP.NET, and explored the process of creating PDF files from HTML within an ASP.NET project. By following the steps outlined above, you can easily integrate PDF generation into your web applications, allowing you to create high-quality, printable documents from HTML content.
IronPDF sports a rich set of features that can be leveraged to produce high-quality PDF documents. For more advanced features and detailed customization, refer to the IronPDF documentation. With its fast installation, you can have IronPDF set up within your project in no time.
Frequently Asked Questions
How can I convert HTML content to a PDF in ASP.NET using C#?
To convert HTML content to a PDF in ASP.NET using C#, you can use the IronPDF library. First, set up your ASP.NET project in Visual Studio, install IronPDF via NuGet, and configure your license key. Then, create a controller that uses IronPDF's ChromePdfRenderer
class to render the HTML content into a PDF document.
What steps are involved in setting up IronPDF in an ASP.NET project?
Setting up IronPDF in an ASP.NET project involves creating a new ASP.NET project in Visual Studio, installing IronPDF via the NuGet package manager, and entering your license key. Once set up, you can utilize IronPDF's features to convert HTML to PDF.
How do I handle PDF conversion logic in an ASP.NET controller?
In an ASP.NET controller, you can handle PDF conversion logic by using IronPDF's ChromePdfRenderer
. Create an action method that takes HTML content and applies the RenderHtmlAsPdf
method to generate a PDF, which can then be returned to the client.
What options are available for customizing the PDF output in IronPDF?
IronPDF allows you to customize PDF output with options such as setting paper size, orientation, margins, and adding headers and footers. These can be adjusted using the RenderingOptions
properties when configuring your PDF document.
How can I ensure high-quality PDF output from HTML using IronPDF?
IronPDF supports modern web standards which ensures high-quality PDF output from HTML. By using the ChromePdfRenderer
, you can maintain consistent formatting and styling, resulting in professional-looking PDF documents.
Can IronPDF be integrated into existing ASP.NET web applications?
Yes, IronPDF can be easily integrated into existing ASP.NET web applications. After installing the library via NuGet and configuring your license, you can use it to convert HTML content to PDFs, enhancing your application's document generation capabilities.
What are some troubleshooting tips for using IronPDF in an ASP.NET project?
If you encounter issues with IronPDF in an ASP.NET project, ensure that the library is correctly installed via NuGet, check that your license key is valid, and review your controller's conversion logic for any errors in HTML rendering or PDF generation.
Where can I find additional resources on using IronPDF for HTML to PDF conversion?
Additional resources and documentation on using IronPDF can be found on the IronPDF official website, where you can access guides, API documentation, and examples to help you effectively use the library for HTML to PDF conversion in ASP.NET.