More languages
Some test text!
More languages
Sample C# code for using Apryse SDK to directly convert HTML pages to PDF by using 'pdftron.PDF.HTML2PDF'. The HTML2PDF converter supports conversion from a string or URL and offers many options to control page size and formatting. Learn more about our C# PDF Library and PDF Conversion Library.
Get Started Samples DownloadTo run this sample, get started with a free trial of Apryse SDK.
//---------------------------------------------------------------------------------------
// Copyright (c) 2001-2024 by Apryse Software Inc. All Rights Reserved.
// Consult legal.txt regarding legal and license information.
//---------------------------------------------------------------------------------------
using System;
using System.IO;
using pdftron;
using pdftron.Common;
using pdftron.SDF;
using pdftron.PDF;
namespace HTML2PDFTestCS
{
//---------------------------------------------------------------------------------------
// The following sample illustrates how to convert HTML pages to PDF format using
// the HTML2PDF class.
//
// 'pdftron.PDF.HTML2PDF' is an optional PDFNet Add-On utility class that can be
// used to convert HTML web pages into PDF documents by using an external module (html2pdf).
//
// html2pdf modules can be downloaded from http://www.pdftron.com/pdfnet/downloads.html.
//
// Users can convert HTML pages to PDF using the following operations:
// - Simple one line static method to convert a single web page to PDF.
// - Convert HTML pages from URL or string, plus optional table of contents, in user defined order.
// - Optionally configure settings for proxy, images, java script, and more for each HTML page.
// - Optionally configure the PDF output, including page size, margins, orientation, and more.
// - Optionally add table of contents, including setting the depth and appearance.
//---------------------------------------------------------------------------------------
class HTML2PDFSample
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static HTML2PDFSample() {}
static void Main(string[] args)
{
string output_path = "../../../../TestFiles/Output/html2pdf_example";
string host = "https://docs.apryse.com";
string page0 = "/";
string page1 = "/all-products/";
string page2 = "/documentation/web/faq";
// The first step in every application using PDFNet is to initialize the
// library and set the path to common PDF resources. The library is usually
// initialized only once, but calling Initialize() multiple times is also fine.
PDFNet.Initialize(PDFTronLicense.Key);
// For HTML2PDF we need to locate the html2pdf module. If placed with the
// PDFNet library, or in the current working directory, it will be loaded
// automatically. Otherwise, it must be set manually using HTML2PDF.SetModulePath().
HTML2PDF.SetModulePath("../../../../../Lib");
if (!HTML2PDF.IsModuleAvailable())
{
Console.WriteLine();
Console.WriteLine("Unable to run HTML2PDFTest: Apryse SDK HTML2PDF module not available.");
Console.WriteLine("---------------------------------------------------------------");
Console.WriteLine("The HTML2PDF module is an optional add-on, available for download");
Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this");
Console.WriteLine("module, ensure that the SDK is able to find the required files");
Console.WriteLine("using the HTML2PDF.SetModulePath() function.");
Console.WriteLine();
return;
}
//--------------------------------------------------------------------------------
// Example 1) Simple conversion of a web page to a PDF doc.
try
{
using (PDFDoc doc = new PDFDoc())
{
// now convert a web page, sending generated PDF pages to doc
HTML2PDF.Convert(doc, host + page0);
doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
//--------------------------------------------------------------------------------
// Example 2) Modify the settings of the generated PDF pages and attach to an
// existing PDF document.
try
{
// open the existing PDF, and initialize the security handler
using (PDFDoc doc = new PDFDoc("../../../../TestFiles/numbered.pdf"))
{
doc.InitSecurityHandler();
// create the HTML2PDF converter object and modify the output of the PDF pages
HTML2PDF converter = new HTML2PDF();
converter.SetPaperSize(PrinterMode.PaperSize.e_11x17);
// insert the web page to convert
converter.InsertFromURL(host + page0);
// convert the web page, appending generated PDF pages to doc
converter.Convert(doc);
doc.Save(output_path + "_02.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
//--------------------------------------------------------------------------------
// Example 3) Convert multiple web pages
try
{
using (PDFDoc doc = new PDFDoc())
{
// convert page 0 into pdf
HTML2PDF converter = new HTML2PDF();
string header = "<div style='width:15%;margin-left:0.5cm;text-align:left;font-size:10px;color:#0000FF'><span class='date'></span></div><div style='width:70%;direction:rtl;white-space:nowrap;overflow:hidden;text-overflow:clip;text-align:center;font-size:10px;color:#0000FF'><span>PDFTRON HEADER EXAMPLE</span></div><div style='width:15%;margin-right:0.5cm;text-align:right;font-size:10px;color:#0000FF'><span class='pageNumber'></span> of <span class='totalPages'></span></div>";
string footer = "<div style='width:15%;margin-left:0.5cm;text-align:left;font-size:7px;color:#FF00FF'><span class='date'></span></div><div style='width:70%;direction:rtl;white-space:nowrap;overflow:hidden;text-overflow:clip;text-align:center;font-size:7px;color:#FF00FF'><span>PDFTRON FOOTER EXAMPLE</span></div><div style='width:15%;margin-right:0.5cm;text-align:right;font-size:7px;color:#FF00FF'><span class='pageNumber'></span> of <span class='totalPages'></span></div>";
converter.SetHeader(header);
converter.SetFooter(footer);
converter.SetMargins("1cm", "2cm", ".5cm", "1.5cm");
HTML2PDF.WebPageSettings settings = new HTML2PDF.WebPageSettings();
settings.SetZoom(0.5);
converter.InsertFromURL(host + page0, settings);
converter.Convert(doc);
// convert page 1 with the same settings, appending generated PDF pages to doc
converter.InsertFromURL(host + page1, settings);
converter.Convert(doc);
// convert page 2 with different settings, appending generated PDF pages to doc
HTML2PDF another_converter = new HTML2PDF();
another_converter.SetLandscape(true);
HTML2PDF.WebPageSettings another_settings = new HTML2PDF.WebPageSettings();
another_settings.SetPrintBackground(false);
another_converter.InsertFromURL(host + page2, another_settings);
another_converter.Convert(doc);
doc.Save(output_path + "_03.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
//--------------------------------------------------------------------------------
// Example 4) Convert HTML string to PDF.
try
{
using (PDFDoc doc = new PDFDoc())
{
HTML2PDF converter = new HTML2PDF();
// Our HTML data
string html = "<html><body><h1>Heading</h1><p>Paragraph.</p></body></html>";
// Add html data
converter.InsertFromHtmlString(html);
// Note, InsertFromHtmlString can be mixed with the other Insert methods.
converter.Convert(doc);
doc.Save(output_path + "_04.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
//--------------------------------------------------------------------------------
// Example 5) Set the location of the log file to be used during conversion.
try
{
using (PDFDoc doc = new PDFDoc())
{
HTML2PDF converter = new HTML2PDF();
converter.SetLogFilePath("../../../../TestFiles/Output/html2pdf.log");
converter.InsertFromURL(host + page0);
converter.Convert(doc);
doc.Save(output_path + "_05.pdf", SDFDoc.SaveOptions.e_linearized);
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
}
PDFNet.Terminate();
}
}
}