Test in a live environment
Test in production without watermarks.
Works wherever you need it to.
For developers working with .NET, finding the right PDF solution is essential to building feature-rich applications, and in today's modern age, it can be hard to find the right tool for your needs with the rising number of products offering PDF conversion technology. In this comparison, we’ll evaluate IronPDF and HiQPdf, two popular HTML-to-PDF libraries used in .NET projects. While both libraries offer robust PDF generation capabilities, IronPDF stands out due to its more comprehensive features, cross-platform compatibility, and intuitive API.
Whether you're looking for advanced editing options, cross-platform support, or ease of use, this side-by-side comparison of IronPDF and HiQPdf will help you make an informed decision.
IronPDF is a versatile PDF library for C# and .NET that enables seamless PDF generation, editing, and manipulation. Supporting .NET 8, 7, 6, and Core, it’s equipped with a rich toolset for developers to handle everything from HTML to PDF conversion to advanced security options like encryption and digital signatures. With IronPDF, you can add text or HTML headers to each PDF page, use web fonts for better text customization, extract text, create stylish PDF documents, and more!
HiQPdf, on the other hand, focuses primarily on HTML to PDF conversion, offering solid support for CSS3, JavaScript, SVG, and Canvas elements. While it provides reliable PDF generation, HiQPdf lacks some of the advanced features and flexibility that IronPDF offers, especially when it comes to cross-platform compatibility and detailed document editing.
PDF conversion: IronPDF can convert HTML 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 page or content. 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 URLs, ASPX files, or HTML strings.
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.
Integration: Seamlessly integrates with ASP.NET and MVC applications.
For a comprehensive list of IronPDF features, visit IronPDF Features.
HTML to PDF Conversion: Supports HTML5, CSS3, JavaScript, SVG, and canvas elements. HiQPdf is capable of handling complex page layouts with precise fidelity.
JavaScript Execution in PDFs: Runs JavaScript inside the PDF post-conversion, enabling interactive features.
Annotations & Bookmarks: Adds standard PDF annotations like comments and highlights.
Custom Paper Size Support: Provides options for defining custom paper sizes during PDF creation.
Basic Password Protection: Secures PDFs with basic password options for restricting access and modification.
Page Break CSS Attributes: Control the page breaks in your generated PDF documents using the CSS property 'page-break-before:always'.
IronPDF has a broader feature set, offering more advanced PDF editing, security, and cross-platform compatibility, giving it an edge over HiQPdf.
One of the key differentiators between IronPDF and HiQPdf is cross-platform compatibility. IronPDF offers seamless support for Windows, Linux, and macOS, making it an excellent choice for developers working in diverse environments. It’s also compatible with Docker, Azure, AWS, and major .NET versions including .NET 8, 7, 6, and .NET Core.
HiQPdf, while functional, is more limited in its platform support, focusing primarily on Windows environments.
IronPDF:
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
HiQPdf:
// create the HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// convert HTML Code to a PDF file
htmlToPdfConverter.ConvertHtmlToFile("<b>Hello World</b>", null, "result.pdf");
// create the HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// convert HTML Code to a PDF file
htmlToPdfConverter.ConvertHtmlToFile("<b>Hello World</b>", null, "result.pdf");
' create the HTML to PDF converter
Dim htmlToPdfConverter As New HtmlToPdf()
' convert HTML Code to a PDF file
htmlToPdfConverter.ConvertHtmlToFile("<b>Hello World</b>", Nothing, "result.pdf")
For HTML to PDF conversion, IronPDF provides a simple approach by using the ChromePdfRenderer to render HTML content into a PDF, whether you're working with HTML documents, string, or URLs. IronPDF also supports advanced scenarios, such as rendering HTML with local assets like images, by specifying the file path for assets and saving the result. HiQPdf, on the other hand, uses the HtmlToPdf class, where the HTML content is directly converted into a PDF file with a more basic setup. Both libraries handle HTML to PDF conversion effectively, but IronPDF offers additional flexibility with asset handling.
IronPDF Example:
using IronPdf;
using System;
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
HiQPdf:
// create the HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// set encryption mode
htmlToPdfConverter.Document.Security.EncryptionMode = GetSelectedEncryptionMode();
// set encryption level
htmlToPdfConverter.Document.Security.EncryptionLevel = GetSelectedEncryptionLevel();
// set open password
htmlToPdfConverter.Document.Security.OpenPassword = textBoxOpenPassword.Text;
// set permissions password
htmlToPdfConverter.Document.Security.PermissionsPassword = textBoxPermissionsPassword.Text;
// set PDF document permissions
htmlToPdfConverter.Document.Security.AllowPrinting = checkBoxAllowPrint.Checked;
htmlToPdfConverter.Document.Security.AllowCopyContent = checkBoxAllowCopy.Checked;
htmlToPdfConverter.Document.Security.AllowEditContent = checkBoxAllowEdit.Checked;
htmlToPdfConverter.Document.Security.AllowEditAnnotations = checkBoxAllowEditAnnotations.Checked;
htmlToPdfConverter.Document.Security.AllowFormFilling = checkBoxAllowFillForms.Checked;
// set a default permissions password if an open password was set without settings a permissions password
// or if any of the permissions does not have the default value
if (htmlToPdfConverter.Document.Security.PermissionsPassword == String.Empty &&
(htmlToPdfConverter.Document.Security.OpenPassword != String.Empty || !IsDefaultPermission(htmlToPdfConverter.Document.Security)))
{
htmlToPdfConverter.Document.Security.PermissionsPassword = "admin";
}
// create the HTML to PDF converter
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
// set encryption mode
htmlToPdfConverter.Document.Security.EncryptionMode = GetSelectedEncryptionMode();
// set encryption level
htmlToPdfConverter.Document.Security.EncryptionLevel = GetSelectedEncryptionLevel();
// set open password
htmlToPdfConverter.Document.Security.OpenPassword = textBoxOpenPassword.Text;
// set permissions password
htmlToPdfConverter.Document.Security.PermissionsPassword = textBoxPermissionsPassword.Text;
// set PDF document permissions
htmlToPdfConverter.Document.Security.AllowPrinting = checkBoxAllowPrint.Checked;
htmlToPdfConverter.Document.Security.AllowCopyContent = checkBoxAllowCopy.Checked;
htmlToPdfConverter.Document.Security.AllowEditContent = checkBoxAllowEdit.Checked;
htmlToPdfConverter.Document.Security.AllowEditAnnotations = checkBoxAllowEditAnnotations.Checked;
htmlToPdfConverter.Document.Security.AllowFormFilling = checkBoxAllowFillForms.Checked;
// set a default permissions password if an open password was set without settings a permissions password
// or if any of the permissions does not have the default value
if (htmlToPdfConverter.Document.Security.PermissionsPassword == String.Empty &&
(htmlToPdfConverter.Document.Security.OpenPassword != String.Empty || !IsDefaultPermission(htmlToPdfConverter.Document.Security)))
{
htmlToPdfConverter.Document.Security.PermissionsPassword = "admin";
}
' create the HTML to PDF converter
Dim htmlToPdfConverter As New HtmlToPdf()
' set encryption mode
htmlToPdfConverter.Document.Security.EncryptionMode = GetSelectedEncryptionMode()
' set encryption level
htmlToPdfConverter.Document.Security.EncryptionLevel = GetSelectedEncryptionLevel()
' set open password
htmlToPdfConverter.Document.Security.OpenPassword = textBoxOpenPassword.Text
' set permissions password
htmlToPdfConverter.Document.Security.PermissionsPassword = textBoxPermissionsPassword.Text
' set PDF document permissions
htmlToPdfConverter.Document.Security.AllowPrinting = checkBoxAllowPrint.Checked
htmlToPdfConverter.Document.Security.AllowCopyContent = checkBoxAllowCopy.Checked
htmlToPdfConverter.Document.Security.AllowEditContent = checkBoxAllowEdit.Checked
htmlToPdfConverter.Document.Security.AllowEditAnnotations = checkBoxAllowEditAnnotations.Checked
htmlToPdfConverter.Document.Security.AllowFormFilling = checkBoxAllowFillForms.Checked
' set a default permissions password if an open password was set without settings a permissions password
' or if any of the permissions does not have the default value
If htmlToPdfConverter.Document.Security.PermissionsPassword = String.Empty AndAlso (htmlToPdfConverter.Document.Security.OpenPassword <> String.Empty OrElse Not IsDefaultPermission(htmlToPdfConverter.Document.Security)) Then
htmlToPdfConverter.Document.Security.PermissionsPassword = "admin"
End If
When it comes to encrypting PDF documents, IronPDF provides a straightforward approach with its API. Developers can remove existing passwords, set new security settings, restrict user actions like annotations, copy-pasting, and form data entry, and make the document read-only. IronPDF allows for metadata modification, password protection, and fine control over printing permissions.
HiQPdf also offers PDF encryption but with a slightly different process, focusing on setting an encryption mode, level, open password, and permissions password. It allows granular control over document permissions such as printing, content copying, and editing, with default permissions available when not explicitly set. Both libraries provide comprehensive security settings, but IronPDF offers additional features like metadata customization and easier handling of document read-only mode.
IronPDF Example:
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
HiQPdf does not offer explicit redaction functionality in its listed features. It is mainly focused on PDF generation, conversion, and manipulation, such as creating PDFs from HTML.
IronPDF provides a straightforward approach to redacting content from your PDF document pages. For example, developers can easily redact specific text throughout a document with a few lines of code, as seen in the above code snippet. In contrast, HiQPdf lacks explicit redaction functionality in its feature set, primarily focusing on PDF generation, conversion, and manipulation, such as creating PDFs from HTML.
IronPDF Example:
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
Private sig = New PdfSignature(cert)
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
HiQPdf:
// create a PDF document
PdfDocument document = new PdfDocument();
// create a page in document
PdfPage page1 = document.AddPage();
// create the true type fonts that can be used in document text
Font sysFont = new Font("Times New Roman", 10, System.Drawing.GraphicsUnit.Point);
PdfFont pdfFont = document.CreateFont(sysFont);
PdfFont pdfFontEmbed = document.CreateFont(sysFont, true);
float crtYPos = 20;
float crtXPos = 5;
// add a title to PDF document
PdfText titleTextTransImage = new PdfText(crtXPos, crtYPos,
"Click the image below to open the digital signature", pdfFontEmbed);
titleTextTransImage.ForeColor = Color.Navy;
PdfLayoutInfo textLayoutInfo = page1.Layout(titleTextTransImage);
crtYPos += textLayoutInfo.LastPageRectangle.Height + 10;
// layout a PNG image with alpha transparency
PdfImage transparentPdfImage = new PdfImage(crtXPos, crtYPos, Server.MapPath("~") + @"\DemoFiles\Images\HiQPdfLogo_small.png");
PdfLayoutInfo imageLayoutInfo = page1.Layout(transparentPdfImage);
// apply a digital sgnature over the image
PdfCertificatesCollection pdfCertificates = PdfCertificatesCollection.FromFile(Server.MapPath("~") + @"\DemoFiles\Pfx\hiqpdf.pfx", "hiqpdf");
PdfDigitalSignature digitalSignature = new PdfDigitalSignature(pdfCertificates[0]);
digitalSignature.SigningReason = "My signing reason";
digitalSignature.SigningLocation = "My signing location";
digitalSignature.SignerContactInfo = "My contact info";
document.AddDigitalSignature(digitalSignature, imageLayoutInfo.LastPdfPage, imageLayoutInfo.LastPageRectangle);
try
{
// write the PDF document to a memory buffer
byte[] pdfBuffer = document.WriteToMemory();
// inform the browser about the binary data format
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
// let the browser know how to open the PDF document and the file name
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename=DigitalSignatures.pdf; size={0}",
pdfBuffer.Length.ToString()));
// write the PDF buffer to HTTP response
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
// call End() method of HTTP response to stop ASP.NET page processing
HttpContext.Current.Response.End();
}
finally
{
document.Close();
}
// create a PDF document
PdfDocument document = new PdfDocument();
// create a page in document
PdfPage page1 = document.AddPage();
// create the true type fonts that can be used in document text
Font sysFont = new Font("Times New Roman", 10, System.Drawing.GraphicsUnit.Point);
PdfFont pdfFont = document.CreateFont(sysFont);
PdfFont pdfFontEmbed = document.CreateFont(sysFont, true);
float crtYPos = 20;
float crtXPos = 5;
// add a title to PDF document
PdfText titleTextTransImage = new PdfText(crtXPos, crtYPos,
"Click the image below to open the digital signature", pdfFontEmbed);
titleTextTransImage.ForeColor = Color.Navy;
PdfLayoutInfo textLayoutInfo = page1.Layout(titleTextTransImage);
crtYPos += textLayoutInfo.LastPageRectangle.Height + 10;
// layout a PNG image with alpha transparency
PdfImage transparentPdfImage = new PdfImage(crtXPos, crtYPos, Server.MapPath("~") + @"\DemoFiles\Images\HiQPdfLogo_small.png");
PdfLayoutInfo imageLayoutInfo = page1.Layout(transparentPdfImage);
// apply a digital sgnature over the image
PdfCertificatesCollection pdfCertificates = PdfCertificatesCollection.FromFile(Server.MapPath("~") + @"\DemoFiles\Pfx\hiqpdf.pfx", "hiqpdf");
PdfDigitalSignature digitalSignature = new PdfDigitalSignature(pdfCertificates[0]);
digitalSignature.SigningReason = "My signing reason";
digitalSignature.SigningLocation = "My signing location";
digitalSignature.SignerContactInfo = "My contact info";
document.AddDigitalSignature(digitalSignature, imageLayoutInfo.LastPdfPage, imageLayoutInfo.LastPageRectangle);
try
{
// write the PDF document to a memory buffer
byte[] pdfBuffer = document.WriteToMemory();
// inform the browser about the binary data format
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
// let the browser know how to open the PDF document and the file name
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename=DigitalSignatures.pdf; size={0}",
pdfBuffer.Length.ToString()));
// write the PDF buffer to HTTP response
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
// call End() method of HTTP response to stop ASP.NET page processing
HttpContext.Current.Response.End();
}
finally
{
document.Close();
}
' create a PDF document
Dim document As New PdfDocument()
' create a page in document
Dim page1 As PdfPage = document.AddPage()
' create the true type fonts that can be used in document text
Dim sysFont As New Font("Times New Roman", 10, System.Drawing.GraphicsUnit.Point)
Dim pdfFont As PdfFont = document.CreateFont(sysFont)
Dim pdfFontEmbed As PdfFont = document.CreateFont(sysFont, True)
Dim crtYPos As Single = 20
Dim crtXPos As Single = 5
' add a title to PDF document
Dim titleTextTransImage As New PdfText(crtXPos, crtYPos, "Click the image below to open the digital signature", pdfFontEmbed)
titleTextTransImage.ForeColor = Color.Navy
Dim textLayoutInfo As PdfLayoutInfo = page1.Layout(titleTextTransImage)
crtYPos += textLayoutInfo.LastPageRectangle.Height + 10
' layout a PNG image with alpha transparency
Dim transparentPdfImage As New PdfImage(crtXPos, crtYPos, Server.MapPath("~") & "\DemoFiles\Images\HiQPdfLogo_small.png")
Dim imageLayoutInfo As PdfLayoutInfo = page1.Layout(transparentPdfImage)
' apply a digital sgnature over the image
Dim pdfCertificates As PdfCertificatesCollection = PdfCertificatesCollection.FromFile(Server.MapPath("~") & "\DemoFiles\Pfx\hiqpdf.pfx", "hiqpdf")
Dim digitalSignature As New PdfDigitalSignature(pdfCertificates(0))
digitalSignature.SigningReason = "My signing reason"
digitalSignature.SigningLocation = "My signing location"
digitalSignature.SignerContactInfo = "My contact info"
document.AddDigitalSignature(digitalSignature, imageLayoutInfo.LastPdfPage, imageLayoutInfo.LastPageRectangle)
Try
' write the PDF document to a memory buffer
Dim pdfBuffer() As Byte = document.WriteToMemory()
' inform the browser about the binary data format
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf")
' let the browser know how to open the PDF document and the file name
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename=DigitalSignatures.pdf; size={0}", pdfBuffer.Length.ToString()))
' write the PDF buffer to HTTP response
HttpContext.Current.Response.BinaryWrite(pdfBuffer)
' call End() method of HTTP response to stop ASP.NET page processing
HttpContext.Current.Response.End()
Finally
document.Close()
End Try
In digitally signing PDF files, IronPDF offers a straightforward approach by allowing developers to create a PDF document from HTML content, sign it with a digital certificate, and save it with minimal code. HiQPdf, on the other hand, requires a more complex setup, where a PDF document is created programmatically by adding a page and embedding fonts. A title and an image are included, followed by the application of a digital signature using a specified certificate, along with detailed metadata like signing reason and location.
IronPDF Example:
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
HiQPdf:
No built-in dedicated watermarking tool.
When applying custom watermarks, IronPDF provides a straightforward solution with built-in support for adding watermarks to PDFs. In the example, a URL is rendered as a PDF, and a customizable watermark with HTML styling is applied at the center of the page. This allows for easy modification of the watermark's content, style, and placement. In contrast, HiQPdf lacks a built-in, dedicated watermarking tool, making it less convenient for developers needing this functionality directly within the library.
IronPDF Example (Text Stamp):
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top
};
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
Imports IronPdf
Imports IronPdf.Editing
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
IronPDF Example (Image Stamp):
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top
};
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top
};
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
HiQPdf:
HiQPdf does not have a dedicated stamping tool for directly adding text or images as stamps onto PDF documents. However, it allows you to add text, images, and graphic objects to PDFs, which can serve a similar purpose. This can be accomplished by creating text objects and image objects within the PDF using the features available in the library.
IronPDF offers dedicated classes for stamping text and images directly onto any existing PDF document or newly created ones, making the process straightforward for developers. In contrast, HiQPdf lacks a dedicated stamping tool; instead, it allows users to add text and image objects within the PDF, requiring a more manual approach to achieve similar results.
IronPDF Example:
using IronPdf;
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
Private renderer As New DocxToPdfRenderer()
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
pdf.SaveAs("pdfFromDocx.pdf")
HiQPdf:
As HiQPdf is primarily an HTML to PDF converter library, it doesn't offer any built-in DOCX to PDF tools.
IronPDF offers direct support for DOCX to PDF conversion through its DocxToPdfRenderer class, while HiQPdf lacks built-in tools for converting DOCX files to PDF, focusing instead on HTML to PDF conversion.
To learn more about the rich set of features IronPDF has to offer, and see them in action, check out the IronPDF how-to guides which takes a deep dive into each feature, explore how they work and give you the skills you need to be a PDF pro.
IronPDF offers a developer-friendly documentation experience. Its robust documentation ensures that developers, whether beginners or advanced users, can effectively integrate IronPDF into their projects. Some of the key aspects of IronPDF’s documentation include:
Step-by-Step Guides: Comprehensive tutorials for every feature, ensuring developers have a clear path from start to finish.
24/5 Technical Support: Engineers are available to assist with any questions or issues during working hours, Monday to Friday.
Live Chat: Real-time support to resolve any licensing or technical questions.
Email Support: Users can reach out for detailed inquiries, and the response is prompt and helpful.
API Reference: Detailed API documentation with examples for each method and property.
Code Samples: Ready-to-use code snippets for common tasks such as HTML to PDF, encryption, watermarking, and more.
For more information, check out IronPDF's extensive documentation, and visit the IronSoftware YouTube Channel.
HiQPdf provides basic documentation that supports most of its core features. While it offers functionality for HTML to PDF conversion and basic PDF manipulation, the documentation lacks the depth and comprehensiveness that IronPDF provides. Key aspects of HiQPdf documentation include:
Basic API Reference: Lists methods for HTML to PDF and basic PDF operations.
Code Examples: Limited sample codes for HTML to PDF conversion and page settings.
Minimal Cross-Platform Guidance: Focuses primarily on Windows environments with less guidance for cross-platform deployments.
Email Support: Primarily for licensing and basic technical queries.
For more technical details on HiQPdf, users need to search through additional resources or external forums.
IronPDF has different levels and additional features for purchasing a license. Developers can also buy IronSuite which gives you access to all of IronSoftware’s products at the price of two. If you’re not ready to buy a license, IronPDF provides a free trial so you can explore all the features it has to offer before committing to a license.
Perpetual licenses: Offers a range of perpetual licenses depending on the size of your team, your project needs, and the number of locations. Each license type comes with email support.
Lite License: This license costs $749 and supports one developer, one location, and one project.
Plus License: Supporting three developers, three locations, and three projects, this is the next step up from the lite license and costs $1,499. The Plus license offers chat support and phone support in addition to basic email support.
Professional License: This license is suitable for larger teams, supporting ten developers, ten locations, and ten projects for $2,999. It offers the same contact support channels as the previous tiers but also offers screen-sharing support.
Royalty-free redistribution: IronPDF's licensing also offers royalty-free redistribution coverage for an extra $1,999
Uninterrupted product support: IronPDF offers access to ongoing product updates, security feature upgrades, and support from their engineering team for either $999/year or a one-time purchase of $1,999 for a 5-year coverage.
HiQPdf also offers a variety of licensing options, but its pricing tends to be slightly more rigid:
Startup License: $245 for a single developer with a single application
Developer License: $495 for one developer with any number of applications.
Team License: $795 for up to five developers working on any number of applications.
While HiQPdf is competitively priced, it does not offer the same value as IronPDF's bundle through IronSuite, nor the breadth of advanced features included in the price.
Both IronPDF and HiQPdf are solid choices for .NET developers looking to integrate PDF functionality into their applications. However, IronPDF shines with its extensive feature set, ease of use, and robust documentation. With its cross-platform compatibility, rich code examples, and excellent support, IronPDF is an excellent solution for developers who need comprehensive PDF functionality across different environments.
If you're looking for a complete solution that offers excellent performance, flexibility, and support, IronPDF is a highly recommended choice. Moreover, IronPDF's ability to handle advanced features such as encryption, redaction, and digital signatures with ease sets it apart from HiQPdf.
9 .NET API products for your office documents