ActivePDF DocConverter Tutorial and Comparison to IronPDF

The ActivePDF Toolkit is a software component used to work with PDF files (including generating PDF files from different sources) and setting its properties (like Header, Footer, Margin or WaterMark). IronPDF is a C# PDF Library that also provides these functions, with competitive pricing.

Here we'll walk through the functions, code examples, and step-by-step actions for how to use both software components in a .NET Visual Studio project, so you can decide for yourself what's best for your application.

HTML String to PDF
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> ";
    //convert HTML string to PDF file
    var PDF = converter.RenderHtmlAsPdf(html);
    //Save the file
    PDF.SaveAs("E:/sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New HtmlToPdf()
	'HTML Source
	Dim html As String = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> "
	'convert HTML string to PDF file
	Dim PDF = converter.RenderHtmlAsPdf(html)
	'Save the file
	PDF.SaveAs("E:/sample.pdf")
End Sub
Jump to Article
HTML File to PDF
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new IronPdf.HtmlToPdf();
    //render html file to pdf
    var PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html");
    //save to target location
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New IronPdf.HtmlToPdf()
	'render html file to pdf
	Dim PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html")
	'save to target location
	PDF.SaveAs("E:/Sample.pdf")
End Sub
Jump to Article
URL to PDF
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //Specify URL
    var PDF = converter.RenderUrlAsPdf("https://yandex.com/");
    //Save the file
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New HtmlToPdf()
	'Specify URL
	Dim PDF = converter.RenderUrlAsPdf("https://yandex.com/")
	'Save the file
	PDF.SaveAs("E:/Sample.pdf")
End Sub
Jump to Article
Watermark PDF
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //source html string
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    //add above string as PDF file content
    var PDF = converter.RenderHtmlAsPdf(html);
    //HTML string for WaterMark
    string WMStr = "<h1 style='color:red'>WaterMark</h1>";
    //add WaterMark 
    PDF.WatermarkPage(WMStr, 0, PdfDocument.WaterMarkLocation.MiddleCenter, 100, -45, "");
    //save the document
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New HtmlToPdf()
	'source html string
	Dim html As String = "<h1 style='text-align:center'>WaterMark Example</h1>"
	'add above string as PDF file content
	Dim PDF = converter.RenderHtmlAsPdf(html)
	'HTML string for WaterMark
	Dim WMStr As String = "<h1 style='color:red'>WaterMark</h1>"
	'add WaterMark 
	PDF.WatermarkPage(WMStr, 0, PdfDocument.WaterMarkLocation.MiddleCenter, 100, -45, "")
	'save the document
	PDF.SaveAs("E:/Sample.pdf")
End Sub
Jump to Article
Set Margins
using IronPdf;
static void Main(string[] args)
{
    //create html to PDF converter
    var converter = new HtmlToPdf();
    //specify left Margin
    converter.PrintOptions.MarginLeft = 50;
    //specify top Margin
    converter.PrintOptions.MarginTop = 40;
    //render html file to PDF
    var PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html");
    //save to the target location
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create html to PDF converter
	Dim converter = New HtmlToPdf()
	'specify left Margin
	converter.PrintOptions.MarginLeft = 50
	'specify top Margin
	converter.PrintOptions.MarginTop = 40
	'render html file to PDF
	Dim PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html")
	'save to the target location
	PDF.SaveAs("E:/Sample.pdf")
End Sub
Jump to Article
Set Header Footers
using IronPdf;
static void Main(string[] args)
{
    //create html to PDF converter
    var converter = new IronPdf.HtmlToPdf();
    //Page Content source
    string html = "<h1 style='text-align:center;'>Page Content</h2>";
    //Assign source to converter
    var PDF = converter.RenderHtmlAsPdf(html);
    //Add Header settings
    converter.PrintOptions.Header = new SimpleHeaderFooter()
    {
        LeftText = "Header Text",
        RightText = "{date} {time}",
        DrawDividerLine=true,
        FontSize=13
    };
    //Add Footer settings
    converter.PrintOptions.Footer = new SimpleHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    //save to target location
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create html to PDF converter
	Dim converter = New IronPdf.HtmlToPdf()
	'Page Content source
	Dim html As String = "<h1 style='text-align:center;'>Page Content</h2>"
	'Assign source to converter
	Dim PDF = converter.RenderHtmlAsPdf(html)
	'Add Header settings
	converter.PrintOptions.Header = New SimpleHeaderFooter() With {
		.LeftText = "Header Text",
		.RightText = "{date} {time}",
		.DrawDividerLine=True,
		.FontSize=13
	}
	'Add Footer settings
	converter.PrintOptions.Footer = New SimpleHeaderFooter() With {
		.RightText = "Page {page} of {total-pages}",
		.FontSize = 12
	}
	'save to target location
	PDF.SaveAs("E:/Sample.pdf")
End Sub
Jump to Article
Try IronPDF free for development


Overview

About the IronPDF C# Library

Iron Software is a market-leading component provider, which offers IronPDF to use for working with PDF files. An all inclusive way to easily generate PDF files from different formats and set all properties programmatically. It is favored by developers because of the consistent, reliable, and accurate PDF file output using just a few lines of code.

IronPDF is designed for C#, .NET, VB, ASPX, ASP.NET, MVC, and .NET Core. It supports Visual Studio, NuGet, Linux, Azure, Docker and more.

About the ActivePDF Toolkit

ActivePDF is a software company that provides many components to deal with PDF files. Unlike the single component IronPDF, ActivePDF provides different solutions for PDF files. For example, to reduce the size of PDF files, you can use ActivePDF Compressor. To create PDF files from HTML sources, use ActivePDF WebGrabber.

In this article, we will use ActivePDF WebGrabber for comparison with IronPDF, let's take a look at it:

ActivePDF WebGrabber for creating PDFs

ActivePDF WebGrabber is a separate component of ActivePDF specifically used to generate PDF files from HTML sources like URL, HTML File, or HTML string. It also provides the functions to set page properties like Header, Footer, Margin, WaterMark, or BookMark to create PDF files according to our requirements.


Comparison

1. ActivePDF v IronPDF Comparison Table

Let's take a look at the side-by-side comparison of both components.

IronPDFActivePDF
IronPDF converts HTML sources to PDF files.ActivePDF converts HTML sources to PDF files.
IronPDF supports .NET Core.ActivePDF does not support .NET Core.
IronPDF supports .NET 4.0 or higher.ActivePDF supports .NET 4.6.2 or higher.
IronPDF supports MacOS.ActivePDF does not support MacOS.
IronPDF can apply CSS to set WaterMark properties.ActivePDF does not support CSS to set WaterMark properties.
IronPDF can set Paper Orientation of PDF files.ActivePDF can set Paper Orientation of PDF files.
IronPDF provides the RenderDelay function to delay the PDF conversion.ActivePDF provides the TimeoutSpan function to delay the PDF conversion.
IronPDF provides predefined functions to set Header or Footer.ActivePDF requires setting Header and Footer by raw HTML and CSS.
IronPDF provides a predefined function to draw a horizontal line to separate content.ActivePDF does not provide a line to separate headers and footers.
To save the PDF file, we can set the directory and file name in one line.We have to set file directory and file name separately.
Need to write fewer lines of code with a simple programming structure.Need to write many lines of code.
License starts from $399.License starts from $1180.


Step 1: Installation

2. How to Install IronPDF

You can add IronPDF library in your project two different ways, with no difference which one you adopt.

NuGet Package Manager

  • Open the NuGet Package Manager in your Visual Studio project.
  • Browse for IronPDF, then install it.

Alternatively:

  • Go to tools
  • Select the package manager console
  • Run the following command:
PM > Install-Package IronPDF

Download IronPDF.dll manually

We can also download IronPDF.dll, then add its reference in the project.

If you can access IronPDF by writing using IronPdf; namespace, it means IronPDF successfully imported into your project and is ready for use.


How to Install WebGrabber

Download WebGrabber-install.exe, and select download file. Once it downloads, double click on the downloaded file. Then request an activation key from ActivePDF for use the following 15-day evaluation key: 001-AEALX-LC6Z5-7YD95-S3D8J-3LR25.

After successful installation, go to the following directory: C:\Program Files\ActivePDF\WebGrabber\bin\

In this directory, you get the APWebGrabber.Net45.dll file. Add its reference in your Visual Studio project.

Now, if you can access WebGrabber by writing using APWebGrabber; namespace, it means ActivePDF WebGrabber successfully imported into your project and you can use it.

ActivePDF Documentation is available to learn more about ActivePDF WebGrabber installation.


How to Tutorials

Using IronPDF and WebGrabber

We have seen the introduction of these two components and their installation processes, and now we will start the comparison by performing different tasks using both. This will let us understand the programming structure of both and decide which one is the best for our projects. For better understanding, we will execute a specific use case in each task and provide the code used to implement.


3. Convert HTML String to PDF File

In the first comparison, we will take a use case where we need to create a PDF file by HTML string and save it to the target location. Firstly, we start to implement this use case by IronPDF:

3.1. HTML String with IronPDF

using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> ";
    //convert HTML string to PDF file
    var PDF = converter.RenderHtmlAsPdf(html);
    //Save the file
    PDF.SaveAs("E:/sample.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> ";
    //convert HTML string to PDF file
    var PDF = converter.RenderHtmlAsPdf(html);
    //Save the file
    PDF.SaveAs("E:/sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New HtmlToPdf()
	'HTML Source
	Dim html As String = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> "
	'convert HTML string to PDF file
	Dim PDF = converter.RenderHtmlAsPdf(html)
	'Save the file
	PDF.SaveAs("E:/sample.pdf")
End Sub
VB   C#

Output:

The above code will create a PDF file sample.pdf in Local Disk E: and its screenshot is:

3.2. HTML String with ActivePDF

using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>";
    //assign source html to WebGrabber
    wg.CreateFromHTMLText = html;
    //specify file directory
    wg.OutputDirectory = "E:/";
    // file name
    wg.NewDocumentName = "sample.pdf";
    //convert source HTML to PDF file
    wg.ConvertToPDF();
}
using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>";
    //assign source html to WebGrabber
    wg.CreateFromHTMLText = html;
    //specify file directory
    wg.OutputDirectory = "E:/";
    // file name
    wg.NewDocumentName = "sample.pdf";
    //convert source HTML to PDF file
    wg.ConvertToPDF();
}
Imports APWebGrabber
Shared Sub Main(ByVal args() As String)
	'Instantiate Object
	Dim wg As New WebGrabber()
	'HTML Source
	Dim html As String = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>"
	'assign source html to WebGrabber
	wg.CreateFromHTMLText = html
	'specify file directory
	wg.OutputDirectory = "E:/"
	' file name
	wg.NewDocumentName = "sample.pdf"
	'convert source HTML to PDF file
	wg.ConvertToPDF()
End Sub
VB   C#

The following screenshot is the newly generated sample.pdf file from this code:

3.3. Difference between IronPDF & ActivePDF

  • Fewer lines of code with IronPDF
  • IronPDF generated file is more readable, because of default margins


4. Convert HTML File to PDF File

In this comparison, we take the use case that we need to generate a PDF file from an HTML file named myHtmlFile.html which exists in E:/ directory, and it has the following HTML and CSS code:

<html>
  <style>
        li{
            font-size:x-large;
            color: magenta;
            font-style: italic;
            }
  </style>
<body>
    <h1>I am Heading</h1>
    <h2>Items List:</h2>
    <ul>
        <li>Item1</li>
        <li>Item2</li>
        <li>Item3</li>
        <li>Item4</li>
    </ul>
</body>
</html>
HTML

Now, we will convert the myHtmlFile.html file to a PDF file using both components. Let's start with IronPDF.

4.1. HTML File with IronPDF

using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new IronPdf.HtmlToPdf();
    //render html file to pdf
    var PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html");
    //save to target location
    PDF.SaveAs("E:/Sample.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new IronPdf.HtmlToPdf();
    //render html file to pdf
    var PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html");
    //save to target location
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New IronPdf.HtmlToPdf()
	'render html file to pdf
	Dim PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html")
	'save to target location
	PDF.SaveAs("E:/Sample.pdf")
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file using the above code:

We can see that the HTML page myHtmlFile.html successfully converted to PDF file Sample.pdf, and the CSS styles are also applied.

Read IronPDF documentation for more about how we can use IronPDF in our .NET project.

Let's perform the same task using ActivePDF WebGrabber.

4.2. HTML File with ActivePDF

using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //specify file path to be converted
    wg.URL = "E:/myHtmlFile.html";
    //specify the directory for newly generated file
    wg.OutputDirectory = "E:/";
    //newly generated file name
    wg.NewDocumentName = "Sample.pdf";
    //convert HTML file to PDF
    wg.ConvertToPDF();
}
using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //specify file path to be converted
    wg.URL = "E:/myHtmlFile.html";
    //specify the directory for newly generated file
    wg.OutputDirectory = "E:/";
    //newly generated file name
    wg.NewDocumentName = "Sample.pdf";
    //convert HTML file to PDF
    wg.ConvertToPDF();
}
Imports APWebGrabber
Shared Sub Main(ByVal args() As String)
	'Instantiate Object
	Dim wg As New WebGrabber()
	'specify file path to be converted
	wg.URL = "E:/myHtmlFile.html"
	'specify the directory for newly generated file
	wg.OutputDirectory = "E:/"
	'newly generated file name
	wg.NewDocumentName = "Sample.pdf"
	'convert HTML file to PDF
	wg.ConvertToPDF()
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file, using the above code:

4.3. Difference between IronPDF & ActivePDF

  • Only 3 lines of code with IronPDF
  • IronPDF file is slightly more clean / attractive


5. Convert URL to PDF File

Let's suppose we have a URL https://yandex.com/ and we want to generate a PDF file of its webpage. For this, both components provide a function. First, we will see how it can be done by IronPDF.

5.1. URL with IronPDF

using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //Specify URL
    var PDF = converter.RenderUrlAsPdf("https://yandex.com/");
    //Save the file
    PDF.SaveAs("E:/Sample.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //Specify URL
    var PDF = converter.RenderUrlAsPdf("https://yandex.com/");
    //Save the file
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New HtmlToPdf()
	'Specify URL
	Dim PDF = converter.RenderUrlAsPdf("https://yandex.com/")
	'Save the file
	PDF.SaveAs("E:/Sample.pdf")
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file by the above code

You can visit the webpage of the URL sample to compare and see how accurately the IronPDF file matches.

Now, we will do the same task using ActivePDF WebGrabber.

5.2. URL with ActivePDF

using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //specify URL 
    wg.URL = "https://yandex.com/";
    //specify the directory for newly generated file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert specified URL webpage to PDF
    wg.ConvertToPDF();
}
using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //specify URL 
    wg.URL = "https://yandex.com/";
    //specify the directory for newly generated file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert specified URL webpage to PDF
    wg.ConvertToPDF();
}
Imports APWebGrabber
Shared Sub Main(ByVal args() As String)
	'Instantiate Object
	Dim wg As New WebGrabber()
	'specify URL 
	wg.URL = "https://yandex.com/"
	'specify the directory for newly generated file
	wg.OutputDirectory = "E:/"
	'specify file name
	wg.NewDocumentName = "Sample.pdf"
	'convert specified URL webpage to PDF
	wg.ConvertToPDF()
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file by the above code:

5.3. Difference between IronPDF & ActivePDF

  • IronPDF has a simpler structure to generate PDF files
  • Only three lines of code
  • IronPDF matches site closer


6. Create a Watermark on PDF

In this comparison, we will create a PDF file using an HTML string, and then add a WaterMark in the center of the page. Let's start with IronPDF.

6.1. Watermark with IronPDF

IronPDF provides the following function to add WaterMark:

WatermarkPage(WaterMark Html String, PageIndexToWaterMark, WaterMarkLocation,Opacity, Rotation, Hyperlink)

We can use the WaterMarkLocation to set the WaterMark on the following positions:

  • TopLeft
  • TopCenter
  • TopRight
  • MiddleLeft
  • MiddleCenter
  • MiddleRight
  • BottomLeft
  • BottomCenter
  • BottomRight

Let's see how to use the above functions to set the WaterMark:

using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //source html string
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    //add above string as PDF file content
    var PDF = converter.RenderHtmlAsPdf(html);
    //HTML string for WaterMark
    string WMStr = "<h1 style='color:red'>WaterMark</h1>";
    //add WaterMark 
    PDF.WatermarkPage(WMStr, 0, PdfDocument.WaterMarkLocation.MiddleCenter, 100, -45, "");
    //save the document
    PDF.SaveAs("E:/Sample.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    //create rendering converter
    var converter = new HtmlToPdf();
    //source html string
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    //add above string as PDF file content
    var PDF = converter.RenderHtmlAsPdf(html);
    //HTML string for WaterMark
    string WMStr = "<h1 style='color:red'>WaterMark</h1>";
    //add WaterMark 
    PDF.WatermarkPage(WMStr, 0, PdfDocument.WaterMarkLocation.MiddleCenter, 100, -45, "");
    //save the document
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create rendering converter
	Dim converter = New HtmlToPdf()
	'source html string
	Dim html As String = "<h1 style='text-align:center'>WaterMark Example</h1>"
	'add above string as PDF file content
	Dim PDF = converter.RenderHtmlAsPdf(html)
	'HTML string for WaterMark
	Dim WMStr As String = "<h1 style='color:red'>WaterMark</h1>"
	'add WaterMark 
	PDF.WatermarkPage(WMStr, 0, PdfDocument.WaterMarkLocation.MiddleCenter, 100, -45, "")
	'save the document
	PDF.SaveAs("E:/Sample.pdf")
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file by the above code:

We can add any type of WaterMark and set its properties by CSS. Now, we will do the same task using ActivePDF WebGrabber.

6.2. Watermark with IronPDF ActivePDF

ActivePDF WebGrabber does not provide a specific function for WaterMark, unlike IronPDF. But we can use the AddStampText() function as a workaround for this purpose:

AddStampText(float x, float y, string stampText);

  • float x to set the x-coordinate for the origin of the new TextStamp.
  • float y to set the y-coordinate for the origin of the new TextStamp.
  • stampText it is the actual text of the TextStamp.

Note: ActivePDF WebGrabber does not support CSS styling for TextStamp. We have to set it by other provided functions as follows:

using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //HTML source for Page content 
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    //assign page content source
    wg.CreateFromHTMLText = html;
    //add text stamp as WaterMark
    wg.AddStampText(270.0f, 350.0f, "WaterMark");
    //specify WaterMark's font size 
    wg.StampFontSize = 20;
    //specify WaterMark's font family
    wg.StampFont = "Times New Roman";
    //specify WaterMark's opacity
    wg.StampFontTransparency = 1f;
    //specify WaterMark's rotation
    wg.StampRotation = 45.0f;
    //specify WaterMark's color
    wg.StampColorNET = new ADK.PDF.Color() { Red = 255, Green = 0, Blue = 0, Gray = 0 };
    //specify directory for newly created file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert above sources to PDF file
    wg.ConvertToPDF();
}
using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //HTML source for Page content 
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    //assign page content source
    wg.CreateFromHTMLText = html;
    //add text stamp as WaterMark
    wg.AddStampText(270.0f, 350.0f, "WaterMark");
    //specify WaterMark's font size 
    wg.StampFontSize = 20;
    //specify WaterMark's font family
    wg.StampFont = "Times New Roman";
    //specify WaterMark's opacity
    wg.StampFontTransparency = 1f;
    //specify WaterMark's rotation
    wg.StampRotation = 45.0f;
    //specify WaterMark's color
    wg.StampColorNET = new ADK.PDF.Color() { Red = 255, Green = 0, Blue = 0, Gray = 0 };
    //specify directory for newly created file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert above sources to PDF file
    wg.ConvertToPDF();
}
Imports APWebGrabber
Shared Sub Main(ByVal args() As String)
	'Instantiate Object
	Dim wg As New WebGrabber()
	'HTML source for Page content 
	Dim html As String = "<h1 style='text-align:center'>WaterMark Example</h1>"
	'assign page content source
	wg.CreateFromHTMLText = html
	'add text stamp as WaterMark
	wg.AddStampText(270.0F, 350.0F, "WaterMark")
	'specify WaterMark's font size 
	wg.StampFontSize = 20
	'specify WaterMark's font family
	wg.StampFont = "Times New Roman"
	'specify WaterMark's opacity
	wg.StampFontTransparency = 1F
	'specify WaterMark's rotation
	wg.StampRotation = 45.0F
	'specify WaterMark's color
	wg.StampColorNET = New ADK.PDF.Color() With {
		.Red = 255,
		.Green = 0,
		.Blue = 0,
		.Gray = 0
	}
	'specify directory for newly created file
	wg.OutputDirectory = "E:/"
	'specify file name
	wg.NewDocumentName = "Sample.pdf"
	'convert above sources to PDF file
	wg.ConvertToPDF()
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file.

6.3. Difference between IronPDF & ActivePDF

  • IronPDF makes it really simple to add a watermark
  • IronPDF provides direct functions for setting watermark properties
  • ActivePDF WebGrabber has a complex programming structure with many lines of code to work around


7. Set Margins on PDF Page

Let's suppose we have a simple web page named myHtmlFile.html in our Local Disk E, which has 100% width and a border with black color. We will generate a PDF file from it and set the page Margin. Let's start with IronPDF.

7.1. Margins with IronPDF

To set the Margins, IronPDF provides the PdfPrintOptions class, which has the following properties:

  • MarginLeft to set Margin from the left side of the page.
  • MarginRight to set Margin from the right side of the page.
  • MarginTop to set Margin from the top of the page.
  • MarginBottom to set a Margin from the bottom of the page.

Note: By default, IronPDF sets a 20mm mMargin from the left, top, right, and the bottom to make the page more readable. We can set it 0mm if we don't need it.

using IronPdf;
static void Main(string[] args)
{
    //create html to PDF converter
    var converter = new HtmlToPdf();
    //specify left Margin
    converter.PrintOptions.MarginLeft = 50;
    //specify top Margin
    converter.PrintOptions.MarginTop = 40;
    //render html file to PDF
    var PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html");
    //save to the target location
    PDF.SaveAs("E:/Sample.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    //create html to PDF converter
    var converter = new HtmlToPdf();
    //specify left Margin
    converter.PrintOptions.MarginLeft = 50;
    //specify top Margin
    converter.PrintOptions.MarginTop = 40;
    //render html file to PDF
    var PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html");
    //save to the target location
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create html to PDF converter
	Dim converter = New HtmlToPdf()
	'specify left Margin
	converter.PrintOptions.MarginLeft = 50
	'specify top Margin
	converter.PrintOptions.MarginTop = 40
	'render html file to PDF
	Dim PDF = converter.RenderHTMLFileAsPdf("E:/myHtmlFile.html")
	'save to the target location
	PDF.SaveAs("E:/Sample.pdf")
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file by the above code:

It can be seen that the PDF page has 50mm from the left side, 40 from the top, and the left side Margin is 20mm which is by default. We can see how simple it is to set the Margin of any side by using the PrintOptions class of IronPDF.

Read more about PDF Generation Settings for further detail: how to work with margins and other properties of the PDF file.

Now, we will set the page Margin using ActivePDF WebGrabber.

7.2. Margins with ActivePDF

To set the page Margins, ActivePDF WebGrabber provides the SetMargins() function, and we can use it as follows: SetMargins(Top Margin, Bottom Margin, Left Margin, Right Margin)

We will use this function to set the page margin:

using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber()
    //specify source HTML file path
    wg.URL = "E:/myHtmlFile.html";
    //Margins
    wg.SetMargins(1, 0, 1.5f, 0);
    //specify directory for newly created file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert HTML file to PDF
    wg.ConvertToPDF();
}
using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber()
    //specify source HTML file path
    wg.URL = "E:/myHtmlFile.html";
    //Margins
    wg.SetMargins(1, 0, 1.5f, 0);
    //specify directory for newly created file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert HTML file to PDF
    wg.ConvertToPDF();
}
Imports APWebGrabber
Shared Sub Main(ByVal args() As String)
	'Instantiate Object
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: WebGrabber wg = new WebGrabber() wg.URL = "E:/myHtmlFile.html";
	New WebGrabber() wg.URL = "E:/myHtmlFile.html"
	Dim wg As New WebGrabber() wg.URL
	'Margins
	wg.SetMargins(1, 0, 1.5F, 0)
	'specify directory for newly created file
	wg.OutputDirectory = "E:/"
	'specify file name
	wg.NewDocumentName = "Sample.pdf"
	'convert HTML file to PDF
	wg.ConvertToPDF()
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file by the above code:

We can see that the PDF page has a 1.5f Margin from the left side and 1f from the top. Using both components, we can easily set page margins according to our requirements.

Read more on how to [set margins with ActivePDF]](https://github.com/ActivePDF/WebGrabber/blob/master/C%23/WebGrabber.SetMargins.cs).


In this comparison, we will see how to set the Header and Footer of a PDF file. We will use both components' provided functions and techniques, through which we can print custom Headers and Footers on PDF pages programmatically.

8.1. Headers and Footers with IronPDF

IronPDF provides the following properties, which can be used to set both Headers and Footers:

  • LeftText : sets Header or Footer text on the left side.
  • CenterText : prints the Header or Footer text in the center.
  • RightText : sets Header or Footer text on the left side.
  • FontFamily : sets the font family of the Header or Footer text.
  • FontSize : sets the font size of Header or Footer text.
  • Spacing : sets the space between the page content and the Header or Footer.
  • DrawDividerLine: it draws a horizontal line that separates page content from the Header or Footer.

We can use the following predefined functions of IronPDF in Curly Brackets {} for Header or Footer:

  • {page} it prints the current page number.
  • {total-pages} it is used to print the total number of pages of a PDF.
  • {url} it is used to print the URL of the rendered PDF.
  • {date} it used to print today's date.
  • {time} it prints the current time.
  • {html-title} it is used to print the title of the rendered Html file.
  • {pdf-title} it sets the document title.

Let's take a look at the following example, in which we will set page Header and Footer by using the above functions:

using IronPdf;
static void Main(string[] args)
{
    //create html to PDF converter
    var converter = new IronPdf.HtmlToPdf();
    //Page Content source
    string html = "<h1 style='text-align:center;'>Page Content</h2>";
    //Assign source to converter
    var PDF = converter.RenderHtmlAsPdf(html);
    //Add Header settings
    converter.PrintOptions.Header = new SimpleHeaderFooter()
    {
        LeftText = "Header Text",
        RightText = "{date} {time}",
        DrawDividerLine=true,
        FontSize=13
    };
    //Add Footer settings
    converter.PrintOptions.Footer = new SimpleHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    //save to target location
    PDF.SaveAs("E:/Sample.pdf");
}
using IronPdf;
static void Main(string[] args)
{
    //create html to PDF converter
    var converter = new IronPdf.HtmlToPdf();
    //Page Content source
    string html = "<h1 style='text-align:center;'>Page Content</h2>";
    //Assign source to converter
    var PDF = converter.RenderHtmlAsPdf(html);
    //Add Header settings
    converter.PrintOptions.Header = new SimpleHeaderFooter()
    {
        LeftText = "Header Text",
        RightText = "{date} {time}",
        DrawDividerLine=true,
        FontSize=13
    };
    //Add Footer settings
    converter.PrintOptions.Footer = new SimpleHeaderFooter()
    {
        RightText = "Page {page} of {total-pages}",
        FontSize = 12
    };
    //save to target location
    PDF.SaveAs("E:/Sample.pdf");
}
Imports IronPdf
Shared Sub Main(ByVal args() As String)
	'create html to PDF converter
	Dim converter = New IronPdf.HtmlToPdf()
	'Page Content source
	Dim html As String = "<h1 style='text-align:center;'>Page Content</h2>"
	'Assign source to converter
	Dim PDF = converter.RenderHtmlAsPdf(html)
	'Add Header settings
	converter.PrintOptions.Header = New SimpleHeaderFooter() With {
		.LeftText = "Header Text",
		.RightText = "{date} {time}",
		.DrawDividerLine=True,
		.FontSize=13
	}
	'Add Footer settings
	converter.PrintOptions.Footer = New SimpleHeaderFooter() With {
		.RightText = "Page {page} of {total-pages}",
		.FontSize = 12
	}
	'save to target location
	PDF.SaveAs("E:/Sample.pdf")
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file by the above code:

We can see that

  • Header Text is printed on the left side of the Header.
  • DateTime is printed on the right side of the Header.
  • A horizontal line is drawn which separates the Header from page content.
  • Page CurrentPage of TotalPages on the right side of the Footer.

Read more about setting HTML to PDF properties using IronPDF.

Let's now use ActivePDF WebGrabber to set page Header and Footers:

8.2. Headers and Footers with ActivePDF

ActivePDF WebGrabber provides the HeaderHTML and FooterHTML properties to set the Header and Footer respectively. The raw HTML is passed to these properties as the Page Header or Footer. Unlike IronPDF, ActivePDF WebGrabber does not provide predefined functions to set the alignment of Header and Footer, so we have to set it using HTML and CSS properties as follows:

using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //Page content source
    string html = @"<h1 style='text-align:center;'>Page Content</h2>";
    //assign above source to WebGrabber
    wg.CreateFromHTMLText = html;
    //specify Footer height
    wg.FooterHeight = 0.5f;
    //Add Footer setting
    wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>";
    //create object for datetime
    DateTime now = DateTime.Now;
    //specify header height
    wg.HeaderHeight = 0.5f;
    //Add Header setting
    wg.HeaderHTML = "<div style='float: left;'>Header Text</div>";
    //append Header settings
    wg.HeaderHTML = $"<div style='float: right;'>{DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}</div>";
    //specify directory for newly created file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert above sources to PDF file
    wg.ConvertToPDF();
}
using APWebGrabber;
static void Main(string[] args)
{
    //Instantiate Object
    WebGrabber wg = new WebGrabber();
    //Page content source
    string html = @"<h1 style='text-align:center;'>Page Content</h2>";
    //assign above source to WebGrabber
    wg.CreateFromHTMLText = html;
    //specify Footer height
    wg.FooterHeight = 0.5f;
    //Add Footer setting
    wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>";
    //create object for datetime
    DateTime now = DateTime.Now;
    //specify header height
    wg.HeaderHeight = 0.5f;
    //Add Header setting
    wg.HeaderHTML = "<div style='float: left;'>Header Text</div>";
    //append Header settings
    wg.HeaderHTML = $"<div style='float: right;'>{DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}</div>";
    //specify directory for newly created file
    wg.OutputDirectory = "E:/";
    //specify file name
    wg.NewDocumentName = "Sample.pdf";
    //convert above sources to PDF file
    wg.ConvertToPDF();
}
Imports APWebGrabber
Shared Sub Main(ByVal args() As String)
	'Instantiate Object
	Dim wg As New WebGrabber()
	'Page content source
	Dim html As String = "<h1 style='text-align:center;'>Page Content</h2>"
	'assign above source to WebGrabber
	wg.CreateFromHTMLText = html
	'specify Footer height
	wg.FooterHeight = 0.5F
	'Add Footer setting
	wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>"
	'create object for datetime
	Dim now As DateTime = DateTime.Now
	'specify header height
	wg.HeaderHeight = 0.5F
	'Add Header setting
	wg.HeaderHTML = "<div style='float: left;'>Header Text</div>"
	'append Header settings
	wg.HeaderHTML = $"<div style='float: right;'>{DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}</div>"
	'specify directory for newly created file
	wg.OutputDirectory = "E:/"
	'specify file name
	wg.NewDocumentName = "Sample.pdf"
	'convert above sources to PDF file
	wg.ConvertToPDF()
End Sub
VB   C#

The following screenshot is of the newly generated Sample.pdf file from the above code:

Read more about how to set [headers and footers with ActivePDF WebGrabber]](https://github.com/ActivePDF/WebGrabber/blob/master/C%23/WebGrabber.AddHeaderFooter.cs).

8.3. Difference between IronPDF & ActivePDF

  • ActivePDF WebGrabber has no predefined function to draw a horizontal line that separates the Header from page content
  • ActivePDF requires the use the DateTime function of the .NET framework
  • IronPDF provides simple setting of Header and Footer properties


9. ActivePDF Components List

NameDetail
ActivePDF DocConverterIt is used to convert popular file types to and from PDF format.
ActivePDF WebGrabberIt grabs the HTML from many sources and converts it to PDF files.
ActivePDF DocSpaceIt provides Batch Process Automation, and a user interface for display, generate, converting, manipulating, and interacting with PDF and other file formats.
ActivePDF ToolkitIt is used to create, modify, view, extract, manipulate, and automate the document content to and from PDF files.
ActivePDF PortalIt enables the users to view and modify PDF documents from any source in a standard web browser.
ActivePDF CADConverterIt is used to convert CAD files into PDF.
ActivePDF XtractorIt is used to extract and find the text and images from PDF files.
ActivePDF SpoolerIt allows the developer to print the PDF file page on paper.
ActivePDF RedactorIt is used to hide sensitive information from the viewer.
ActivePDF ServerIt provides the printing solution for different purposes.


10. Licensing

ActivePDF does not provide any information about their packages on their ActivePDF website. To get information about licensing, you must contact their salesperson. However, you must know exactly what type of production license you are looking for. They do not provide a list of prices, and while prices start at $1,180 for an annual license, it can be higher depending on scope of use and must be detailed in order to get a quote.

IronPDF provides transparent pricing with licenses from $399, with many customizable options. Contact the team if you have any questions.


Tutorial Quick Access

Explore the IronPDF Object Reference

Explore the Object Reference for IronPDF C# Library, including details of all of IronPDF’s features, classes, method fields, namespaces, and enums.

View the Object Reference

Ubaid

Ubaid is a full-stack developer. He has spent many years in ERP development using different technologies and platforms. He evaluated many market-leading products and found the best Iron product from all.