Test in production without watermarks.
Works wherever you need it to.
Get 30 days of fully functional product.
Have it up and running in minutes.
Full access to our support engineering team during your product trial
When you're working with PDFs, you'll want to use the best tool that fits your project needs, right? But with so many different PDF libraries out there, it can be hard to decide which one is best for you. Today we will be taking a closer look at two prominent PDF libraries: IronPDF and NReco.PdfGenerator.
We will compare their features, compatibility, and overall performance to help you make an informed decision on which library might be the right fit for you.
IronPDF is a comprehensive .NET library that excels in converting HTML to PDF and offers an extensive set of features for working with PDF files. IronPDF supports modern web standards, including HTML5, CSS3, and JavaScript, ensuring high-fidelity PDF generation. It is also designed to be user-friendly, offering an intuitive API that integrates seamlessly with .NET applications.
NReco.PdfGenerator for .NET is a powerful library focused on HTML to PDF conversion. It is based on the WkHtmlToPdf command line tool and relies on the Qt WebKit rendering engine to create PDF documents from HTML content. This library is known for its ease of use and quick integration into .NET projects, requiring just one .NET assembly that already includes the WkHtmlToPdf binaries, making it a popular choice for developers needing reliable PDF generation capabilities.
IronPDF stands out with its extensive cross-platform compatibility. It supports a wide range of environments within the .NET framework, ensuring seamless operation across different platforms. Below is a summary of IronPDF's platform compatibility:
.NET versions:
For more details on IronPDF's compatibility, visit the IronPDF Features Page.
.NET versions:
For a comprehensive list of IronPDF features, visit IronPDF Features.
Now, let's take a closer look at some common use cases when working with PDF documents and how these two libraries handle them.
IronPDF Example:
using IronPdf;
// Enable web security settings such as disabling local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate the renderer for creating PDFs
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export the PDF to a file
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS, and JavaScript.
// Example uses 'c:\site\assets\' as the base path for loading assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"c:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;
// Enable web security settings such as disabling local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate the renderer for creating PDFs
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export the PDF to a file
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS, and JavaScript.
// Example uses 'c:\site\assets\' as the base path for loading assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"c:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Enable web security settings such as disabling local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate the renderer for creating PDFs
Dim renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export the PDF to a file
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
' Load external HTML assets: images, CSS, and JavaScript.
' Example uses 'c:\site\assets\' as the base path for loading assets
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "c:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
NReco.PdfGenerator Example:
using System;
using NReco.PdfGenerator;
// Format HTML content with the current date and time
var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now);
// Instantiate the HTML to PDF converter
var htmlToPdf = new HtmlToPdfConverter();
// Generate the PDF from the HTML content
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
using System;
using NReco.PdfGenerator;
// Format HTML content with the current date and time
var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now);
// Instantiate the HTML to PDF converter
var htmlToPdf = new HtmlToPdfConverter();
// Generate the PDF from the HTML content
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
Imports System
Imports NReco.PdfGenerator
' Format HTML content with the current date and time
Private htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now)
' Instantiate the HTML to PDF converter
Private htmlToPdf = New HtmlToPdfConverter()
' Generate the PDF from the HTML content
Private pdfBytes = htmlToPdf.GeneratePdf(htmlContent)
IronPDF provides high-fidelity rendering thanks to its support for modern web standards. When using IronPDF for HTML to PDF conversion, you will be able to create pixel-perfect PDFs from HTML documents, web pages, and more. NReco.PdfGenerator uses WkHtmlToPdf, which also offers reliable rendering when working with any HTML template or web page, but might not match the precision of IronPDF's rendering capabilities.
For more examples of using IronPDF for HTML to PDF conversion, visit IronPDF HTML to PDF.
IronPDF Example:
using IronPdf;
using System;
// Open an encrypted file or create a new PDF from HTML
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
// Edit file security settings
// Make the PDF read-only, disallow copying & pasting, and disallow printing
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;
// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;
// Open an encrypted file or create a new PDF from HTML
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");
// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
// Edit file security settings
// Make the PDF read-only, disallow copying & pasting, and disallow printing
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;
// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System
' Open an encrypted file or create a new PDF from HTML
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")
' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now
' Edit file security settings
' Make the PDF read-only, disallow copying & pasting, and disallow printing
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
' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
NReco.PdfGenerator Example: NReco.PdfGenerator does not natively support PDF encryption, as the focus of this library is primarily on handling HTML to PDF conversion.
IronPDF offers a straightforward yet powerful tool for encrypting PDFs. With IronPDF, you will have full control over the entire process, including setting security settings. NReco.PdfGenerator, however, lacks native encryption features, so if you want to encrypt your PDF file after using NReco.PdfGenerator to convert it, you will need additional libraries that can handle PDF encryption.
For more encryption examples, visit the IronPDF How-To Guide on this topic.
IronPDF Example:
using IronPdf;
// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact the word 'are' on all pages of the document
pdf.RedactTextOnAllPages("are");
// Save the redacted PDF
pdf.SaveAs("redacted.pdf");
using IronPdf;
// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact the word 'are' on all pages of the document
pdf.RedactTextOnAllPages("are");
// Save the redacted PDF
pdf.SaveAs("redacted.pdf");
Imports IronPdf
' Load the PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact the word 'are' on all pages of the document
pdf.RedactTextOnAllPages("are")
' Save the redacted PDF
pdf.SaveAs("redacted.pdf")
NReco.PdfGenerator Example: NReco.PdfGenerator does not natively support text redaction.
Requiring just a few lines of code, IronPDF provides you with a concise and easy-to-use redaction tool. Given its simplicity, you can be sure that by using IronPDF's redaction feature, you will be able to increase the efficiency of your workspace right off the bat. NReco.PdfGenerator, on the other hand, would require an additional external library to handle the redaction process as it has no native support for PDF redaction.
For more redaction examples, visit the IronPDF How-To guide on this topic.
IronPDF Example:
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Instantiate the Chrome PDF Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render HTML as PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with the Exportable flag set
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object and sign the PDF document
var sig = new PdfSignature(cert);
pdf.Sign(sig);
// Save the signed PDF
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Instantiate the Chrome PDF Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render HTML as PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with the Exportable flag set
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object and sign the PDF document
var sig = new PdfSignature(cert);
pdf.Sign(sig);
// Save the signed PDF
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Instantiate the Chrome PDF Renderer
Private renderer As New ChromePdfRenderer()
' Render HTML as PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
' Create X509Certificate2 object with the Exportable flag set
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object and sign the PDF document
Private sig = New PdfSignature(cert)
pdf.Sign(sig)
' Save the signed PDF
pdf.SaveAs("signed.pdf")
NReco.PdfGenerator Example: NReco.PdfGenerator does not natively support digital signatures.
IronPDF's digital signature feature provides you with an easy way to automate the signing of PDFs. Its straightforward API gives you full control over the signing process, while its ease of implementation means less work for you if you find yourself signing PDFs regularly.
NReco.PdfGenerator does not offer any support for digitally signing PDFs, but you can make use of third-party libraries such as iTextSharp to do this.
For more signing examples, visit the IronPDF How-To guide on this topic.
IronPDF Example:
using IronPdf;
// Instantiate the renderer and render a PDF from a URL
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Apply an HTML-based watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
// Save the watermarked PDF
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;
// Instantiate the renderer and render a PDF from a URL
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Apply an HTML-based watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
// Save the watermarked PDF
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
' Instantiate the renderer and render a PDF from a URL
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
' Apply an HTML-based watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
' Save the watermarked PDF
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
NReco.PdfGenerator Example: NReco.PdfGenerator does not natively support watermarking.
Familiarity with HTML and CSS can enhance your experience while using IronPDF's watermarking tool. You will have full control over the watermarking process. The intuitive and easy-to-learn aspects of the watermarking control will make you feel proficient in no time.
If you are using NReco.PdfGenerator and want to watermark your newly converted PDF files, you will need to install an external library, such as PDFSharp.
For more watermark examples, visit the IronPDF How-To guide on this topic.
IronPDF Example:
using IronPdf;
using IronPdf.Editing;
// Instantiate the renderer and render a PDF from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create a text stamper and customize its settings
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Apply text stamp to the PDF
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
using IronPdf;
using IronPdf.Editing;
// Instantiate the renderer and render a PDF from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create a text stamper and customize its settings
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Apply text stamp to the PDF
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
Imports IronPdf
Imports IronPdf.Editing
' Instantiate the renderer and render a PDF from HTML
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create a text stamper and customize its settings
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
' Apply text stamp to the PDF
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
using IronPdf;
using IronPdf.Editing;
using System;
// Instantiate the renderer and render a PDF from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create an image stamper with specific settings
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Apply image stamp to the PDF
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
using System;
// Instantiate the renderer and render a PDF from HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create an image stamper with specific settings
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Apply image stamp to the PDF
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Imports System
' Instantiate the renderer and render a PDF from HTML
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create an image stamper with specific settings
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}
' Apply image stamp to the PDF
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
NReco.PdfGenerator Example: NReco.PdfGenerator does not natively support HTML stamping.
IronPDF offers robust text and image stamping tools. With an approach that closely resembles HTML and CSS, you will have total control over the stamping process. In contrast, NReco.PdfGenerator requires an external library such as iTextSharp or PDFSharp to stamp text and images onto your newly converted PDF documents.
For more stamping examples, visit the IronPDF How-To guide on this topic.
IronPDF Example:
using IronPdf;
// Instantiate the DOCX to PDF Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render a DOCX file as PDF
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the converted PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;
// Instantiate the DOCX to PDF Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render a DOCX file as PDF
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the converted PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
' Instantiate the DOCX to PDF Renderer
Private renderer As New DocxToPdfRenderer()
' Render a DOCX file as PDF
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Save the converted PDF
pdf.SaveAs("pdfFromDocx.pdf")
NReco.PdfGenerator Example: NReco.PdfGenerator does not natively support DOCX to PDF conversion.
Using IronPDF, you can convert your DOCX files to a PDF format in just a few lines of code. This tool simplifies the implementation process, ensuring an efficient workspace without sacrificing quality in the resulting PDF files. With NReco.PdfGenerator, you cannot perform DOCX to PDF conversions as the library primarily focuses on HTML to PDF conversion. You will need an additional library such as Apsose.Words to handle DOCX to PDF conversion.
For more DOCX to PDF examples, visit the IronPDF How-To guide on this topic.
IronPDF has different levels and additional features for purchasing a license. Developers can also buy the Iron Suite, which gives you access to all of Iron Software’s products at the price of two. If you’re not ready to buy a license, IronPDF provides a free trial that lasts 30 days.
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: Suitable for larger teams, supporting ten developers, ten locations, and ten projects for $2,999. It offers the same contact support channels as previous tiers but also provides screen-sharing support.
Royalty-free redistribution: IronPDF's licensing offers royalty-free redistribution coverage for an extra $1,999.
Uninterrupted product support: 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 5-year coverage.
Free version: NReco.PdfGenerator offers a free online HTML to PDF converter.
IronPDF excels in providing extensive documentation and support:
For more information, check out IronPDF's extensive documentation and visit the Iron Software YouTube Channel.
IronPDF and NReco.PdfGenerator are both strong contenders for all your HTML to PDF conversion needs. However, if you need a tool that comes with a rich set of built-in features beyond just HTML to PDF conversion, then IronPDF is for you.
With a comprehensive feature set, easy learning curve, and extensive support for modern web standards and cross-platform compatibility, IronPDF will be a powerful addition to your workspace. NReco.PdfGenerator, while reliable for basic HTML to PDF conversion, lacks many of the advanced features provided by IronPDF.
You can try the 30-day free trial to check out their available features.
IronPDF offers a comprehensive set of features including HTML to PDF conversion, PDF editing, security features, and more. NReco.PdfGenerator primarily focuses on HTML to PDF conversion using the WkHtmlToPdf tool, with limited additional features.
Yes, both libraries support cross-platform compatibility. IronPDF supports .NET Core, .NET Standard, .NET Framework, and various environments such as Windows, Linux, and macOS. NReco.PdfGenerator supports .NET Standard and .NET Core, and works on Windows, Linux, and macOS.
Yes, IronPDF provides features for PDF encryption and digital signatures, allowing you to secure your PDF files and add digital signatures. NReco.PdfGenerator does not natively support these features.
IronPDF offers various licensing options including Lite, Plus, and Professional licenses. It also offers an Iron Suite for access to all Iron Software products and provides a 30-day free trial.
Yes, NReco.PdfGenerator offers a free online HTML to PDF converter. For commercial use, an enterprise source code pack is available for purchase.
IronPDF provides extensive documentation, video tutorials, 24/5 support, a community forum, and regular updates. NReco.PdfGenerator offers API documentation and contact details for support.
Yes, IronPDF can convert DOCX files to PDF, providing an efficient way to convert documents without sacrificing quality. NReco.PdfGenerator does not support this feature natively.
IronPDF supports modern web standards for high-fidelity PDF rendering, ensuring pixel-perfect PDFs. It also offers features like HTML asset loading and PDF security settings, making it a robust tool for HTML to PDF conversion.
No, NReco.PdfGenerator does not natively support PDF redaction or watermarking. IronPDF offers native support for these features, allowing easy redaction and watermarking of PDF files.
Common use cases for IronPDF include HTML to PDF conversion, PDF encryption, digital signing, and editing existing PDFs. NReco.PdfGenerator is primarily used for converting HTML content to PDF format.