Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
In this guide, you will find information on how to convert an HTML document into a Portable Document Format (PDF) file format using Aspose.HTML for .NET library. We are going to cover in detail how to convert HTML to PDF using the ConvertHTML() methods of the Converter class, and how to apply PdfSaveOptions and ICreateStreamProvider parameters.
To continue following this tutorial, you should install and configure the Aspose.HTML for .NET library in your C# project. Our code examples help you to convert HTML to PDF and generate PDF files using the C# library.
HTML to PDF conversion is very popular. To perform this feature, Aspose.HTML for .NET offer the static methods of the Converter class as an understandable and straightforward way to convert HTML code into a PDF file literally with a single line of code!
1// Convert HTML to PDF using C#
2
3// Invoke the ConvertHTML() method to convert HTML to PDF
4Converter.ConvertHTML(@"<h1>Convert HTML to PDF!</h1>", ".", new PdfSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.pdf"));You can check the Aspose.HTML API functionality and convert HTML in real-time. Please load HTML from the local file system, select the output format and run the example. In the example, the save options are set by default. You will immediately receive the result as a separate file.
If you want to convert HTML to PDF programmatically, please see the following C# code examples.
Any HTML to PDF conversion you want to perform involves loading an HTML document and saving it in PDF format. You can load HTML from a file, HTML code, stream, or URL (see the Creating an HTML Document article). It can be different scenarios but it can be made with a few required steps:
string) constructor that initializes an HTML document from a file.In order to continue in this guide, we will need some HTML file to work with. Here is a sample HTML file we will use in the next C# example – spring.html. If you open it in your browser, you should see:

Please take a look over the following C# code snippet that shows the HTML to PDF conversion process for the spring.html file.
1// Convert HTML to PDF in C#
2
3// Prepare a path to a source HTML file
4string documentPath = Path.Combine(DataDir, "spring.html");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "spring-output.pdf");
8
9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize PdfSaveOptions
13PdfSaveOptions options = new PdfSaveOptions();
14
15// Convert HTML to PDF
16Converter.ConvertHTML(document, options, savePath);The PDF creation functionality can be enhanced with save options per your needs. Aspose.HTML allows converting HTML to PDF using default or custom save options. PdfSaveOptions usage enables you to customize the rendering process; you can specify the page size, margins, file permissions, Css, etc.
| Property | Description |
|---|---|
| JpegQuality | Specifies the quality of JPEG compression for images. The default value is 95. |
| Css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
| DocumentInfo | This property contains information about the output PDF document. |
| BackgroundColor | This property sets the color that will fill the background of every page. By default, this property is Transparent. |
| PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
| HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
| VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
| Encryption | This property gets or sets encryption details. If it is not set, then no encryption will be performed. |
To learn more about PdfSaveOptions, please read the Fine-Tuning Converters article. You can download the complete examples and data files from GitHub.
With Aspose.HTML, you can convert files programmatically with full control over a wide range of conversion parameters. To convert HTML to PDF with PdfSaveOptions specifying, you should follow a few steps:
document, options, output file path savePath and performs the conversion operation.The following example shows how to use PdfSaveOptions and create a PDF file with custom save options:
1// Convert HTML to PDF in C# with custom page settings
2
3// Prepare a path to a source HTML file
4string documentPath = Path.Combine(DataDir, "drawing.html");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "drawing-options.pdf");
8
9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize PdfSaveOptions. Set up the page-size 600x300 pixels, margins, resolutions and change the background color to AliceBlue
13PdfSaveOptions options = new PdfSaveOptions()
14{
15 HorizontalResolution = 200,
16 VerticalResolution = 200,
17 BackgroundColor = System.Drawing.Color.AliceBlue,
18 JpegQuality = 100
19};
20options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(600, 300), new Margin(20, 10, 10, 10));
21
22// Convert HTML to PDF
23Converter.ConvertHTML(document, options, savePath);In the above example, we use:
JpegQuality property that enables you to specify the quality of JPEG compression for images;BackgroundColor property that sets the color that will fill the background. The default BackgroundColor is Transparent;HorizontalResolution and VerticalResolution properties that set horizontal/vertical resolution for output images in pixels per inch. By default, these properties are 300 dpi;PageSetup property that specifies the
page size and
margins.Converting HTML to PDF can be flexibly customized to get the desired result. In the following articles, you will find answers to popular questions concerning HTML to PDF conversion:
If it is required to save files in the remote storage (e.g., cloud, database, etc.) you can implement ICreateStreamProvider interface to have manual control over the file creating process. This interface is designed as a callback object to create a stream at the beginning of the document/page (depending on the output format) and release the early created stream after rendering the document/page.
Aspose.HTML C# library allows realizing the MemoryStreamProvider class as a custom implementation of the ICreateStreamProvider interface. The MemoryStreamProvider class provides C# MemoryStream objects as output streams for writing data, which can be stored in memory as a stream:
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}Aspose.HTML for .NET provides various types of output formats for rendering operations. Some of these formats produce a single output file (for instance, PDF, XPS), while others create multiple files (Image formats JPG, PNG, etc.).
The following C# code demonstrates how to use the MemoryStreamProvider class and the Aspose.HTML for .NET library to convert HTML to PDF and save the result to a file.
1// Convert HTML to PDF in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Initialize an HTML document
7using HTMLDocument document = new HTMLDocument(@"<h1>Convert HTML to PDF File Format!</h1>", ".");
8
9// Convert HTML to PDF using the MemoryStreamProvider
10Converter.ConvertHTML(document, new PdfSaveOptions(), streamProvider);
11
12// Get access to the memory stream that contains the result data
13MemoryStream memory = streamProvider.Streams.First();
14memory.Seek(0, SeekOrigin.Begin);
15
16// Flush the result data to the output file
17using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.pdf")))
18{
19 memory.CopyTo(fs);
20}You can download the complete examples and data files from GitHub.
Download the Aspose.HTML for .NET library, which allows you to successfully, quickly, and easily convert your HTML, MHTML, EPUB, SVG, and Markdown documents to the most popular formats.
Aspose.HTML offers a free online HTML to PDF Converter that converts HTML to PDF with high quality, easy and fast. Just upload, convert your files and get the result in a few seconds!
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.