Test in a live environment
Test in production without watermarks.
Works wherever you need it to.
Are you looking for a PDF library that can handle all your PDF-related tasks but don't know which one is the right one for you? There are so many PDF-focused libraries out there, that it can be hard to determine which one is the best for you. Today, we will be taking a closer look at two PDF libraries, IronPDF and EO.PDF. Taking a comparative look at these two libraries, we'll be looking at several key aspects; What features they have to offer, how they handle common PDF-related tasks, what documentation and support they offer, and the pricing model for the use of their licenses.
IronPDF is a versatile and powerful .NET library designed for creating, editing, and converting PDF documents within your .NET application. With IronPDF, you can easily convert HTML, URLs, and web pages into PDFs while supporting advanced features such as PDF encryption, annotation, digital signatures, and watermarking. With extensive documentation and cross-platform compatibility, IronPDF is an ideal solution for .NET developers looking to handle PDF tasks seamlessly.
EO.Pdf is a .NET class library that allows developers to create PDF files programmatically, based on the Google Chromium engine. It offers core features like HTML to PDF conversion, PDF creation, reading, splitting, merging, and encryption. All the features are packed within a few DLL files, making installation easy. EO.Pdf focuses on providing intuitive objects to create and manipulate PDF documents, making it a suitable choice for basic PDF functionalities in .NET applications.
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:
Fully written in and supports C#, VB.NET, and F#
.NET Core (8, 7, 6, 5, and 3.1+)
.NET Standard (2.0+)
App environments: IronPDF works within various app environments such as Windows, Linux, Mac, Docker, Azure, and AWS.
IDEs: Works with IDEs such as Microsoft Visual Studio and JetBrains Rider & ReSharper
For more details on IronPDF's compatibility, visit IronPDF Compatibility.
.NET versions:
.NET Framework 4.0+
A main aspect to consider when you are looking for the right PDF library for you is what features the library has and what features you need for the tasks you plan to carry out. So now, let's take a look at an overview of the features each library has to offer.
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 file 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.
For a complete list of IronPDF features, refer to IronPDF Features.
PDF creation: Create PDF files using EO.Pdf's PDF Creator tool, or if you're looking for something a bit easier, try its HTML-to-PDF converter.
PDF reader: EO.Pdf's PDF reader tool can read existing PDF files. Following this, you can modify PDF files, split, merge, or encrypt these files.
Merge and split: With EO.Pdf, you can split any existing PDF file, or merge multiple PDF files.
In this section, we will be taking a look at some common PDF-related tasks and how IronPDF and EO.Pdf handle these use cases.
IronPDF Example:
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf
' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True
' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
' Advanced Example with HTML Assets
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
EO.Pdf Example:
HtmlToPdf.ConvertHtml("<h1>Hello World</h1>", "output.pdf");
HtmlToPdf.ConvertHtml("<h1>Hello World</h1>", "output.pdf");
HtmlToPdf.ConvertHtml("<h1>Hello World</h1>", "output.pdf")
As you can see in the above code, IronPDF's HTML-to-PDF converter gives you a powerful method of creating PDF files from HTML content in just a few lines of code. With strong support for modern web standards, you are sure to get pixel-perfect PDF documents from your web application or web pages each time. EO.Pdf requires just a single line of code to convert HTML content to PDF, which makes it quick and easy to implement.
IronPDF Example:
using IronPdf;
using System;
// Open an Encrypted File, alternatively 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
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, alternatively 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
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, alternatively 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
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")
EO.Pdf Example:
PdfDocument doc = new PdfDocument();
doc.Security.UserPassword = "user";
doc.Security.OwnerPassword = "owner";
doc.Save("encrypted.pdf");
PdfDocument doc = new PdfDocument();
doc.Security.UserPassword = "user";
doc.Security.OwnerPassword = "owner";
doc.Save("encrypted.pdf");
Dim doc As New PdfDocument()
doc.Security.UserPassword = "user"
doc.Security.OwnerPassword = "owner"
doc.Save("encrypted.pdf")
While IronPDF's encryption process requires more lines of code, it provides a powerful encryption tool that can be used to secure your PDF file, and gives you full control over the process with a range of options to fully customize the encryption task. EO.Pdf provides a short, simple to implement encryption tool, but lacks the level of control that IronPDF offers.
IronPDF Example:
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")
pdf.SaveAs("redacted.pdf")
EO.Pdf: Not natively supported.
IronPDF provides a built-in redaction tool capable of redacting specified content from your PDF within just a few lines of code. EO.Pdf, however, offers no such feature, so you would need to look at installing additional libraries to carry out PDF redaction.
IronPDF Example:
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");
// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);
// Create PdfSignature object
var sig = new PdfSignature(cert);
// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")
' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create PdfSignature object
Private sig = New PdfSignature(cert)
' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
EO.Pdf:
//Create a PdfSigner object
PdfSigner signer = new PdfSigner(your_x509_certificate);
//Sign the PDF file
signer.Sign(pdf_file_name);
//Create a PdfSigner object
PdfSigner signer = new PdfSigner(your_x509_certificate);
//Sign the PDF file
signer.Sign(pdf_file_name);
'Create a PdfSigner object
Dim signer As New PdfSigner(your_x509_certificate)
'Sign the PDF file
signer.Sign(pdf_file_name)
With IronPDF, you can securely sign any PDF file with ease. Its PDF signing tool gives you full control over the process while keeping the method short and straightforward to implement. EO.Pdf's signing process is straightforward to use and takes very few lines of code to get working.
IronPDF Example:
using IronPdf;
// Stamps a Watermark onto a new or existing PDF
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;
// Stamps a Watermark onto a new or existing PDF
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
' Stamps a Watermark onto a new or existing PDF
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")
EO.Pdf: Lacks native support for watermarking.
With an approach similar to HTML/CSS, IronPDF's watermarking tool is easy to use and makes applying your custom watermarks to PDF files a breeze. EO.Pdf lacks any native support for watermarking, though, so external libraries will be required to carry out this task.
IronPDF Example:
Text stamper:
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
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>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
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>")
' Create text stamper
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
Image stamper:
using IronPdf;
using IronPdf.Editing;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;
using System;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing
Imports System
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create image stamper
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}
' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
EO.Pdf: Does not support advanced stamping options.
Stamping Text and Images onto your PDF files has never been easier thanks to IronPDF's powerful, yet easy-to-use image and text stamping tools. If you're familiar with HTML and CSS, then these tools are even easier to use thanks to their similar approach to CSS when applying the stamp to the PDF.
If you're looking to apply text and image stamps to your PDFs and use EO.Pdf, you'll need to look into installing separate libraries as EO.Pdf does not offer any support for this process.
IronPDF Example:
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;
// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");
// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()
' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")
' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
EO.Pdf: Requires additional tools to handle DOCX to PDF conversion.
IronPDF simplifies DOCX to PDF conversion directly in .NET environments with its powerful DOCX to PDF tool, while taking only a few lines of code and saving you time and effort. EO.Pdf, on the other hand, doesn't contain any built-in tool for DOCX to PDF conversion, so you will need to turn to external libraries for this.
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 take a deep dive into each feature, explore how they work and give you the skills you need to be a PDF pro.
IronPDF has different levels and additional features for purchasing a license. Developers can also buy IronSuite 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 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.
EO.Pdf offers a small range of licensing options for its product.
If you want to just purchase an individual license for EO.Pdf, without any of the other products EO has to offer, you can choose from the following options:
Single License: Supports a single developer, unlimited servers, unlimited applications, and offers standard support all for $799.
Three License Bundle: This option is for three developers, with the same support for servers and applications as the tier before, but with priority support, and costs $1799.
Corporate Bundle: This is for a single organization, and can support unlimited developers at a single physical location, or up to ten developers at different locations. It also supports unlimited servers and applications, and has priority support. This tier costs $2999.
Comprehensive Documentation: Extensive and user-friendly documentation covering all features.
24/5 Support: Active engineer support is available.
Video Tutorials: Step-by-step video guides are available on YouTube.
Community Forum: Engaged community for additional support.
Regular Updates: Monthly product updates to ensure the latest features and security patches.
For more information, check out IronPDF's extensive documentation, and visit the Iron Software YouTube Channel.
API Reference: EO.Pdf contains extensive details on its features within its API reference section, breaking down each method and tool within the library.
Documentation: EO.Pdf contains extensive documentation on its website, along with code examples to show each feature in action.
In conclusion, when it comes to choosing a PDF library for your PDF-related tasks, there is a lot to take into consideration. Does the library you're looking at provide all the features you require? Is it well documented and easy to learn? What is the pricing like in comparison to your budget? Hopefully, after today you feel more confident when it comes to choosing the right library for you, and you can use our comparison topics to compare future libraries for yourself.
IronPDF is a powerful PDF library to have at your fingertips, with a comprehensive set of PDF-related features, robust cross-platform compatibility, and extensive documentation. From simple features such as PDF generation from various file types, to more advanced features such as PDF encryption and signing, IronPDF has you covered.
EO.Pdf offers a decent set of PDF features, but lacks the same extensive set that IronPDF has to offer. Although, with its simple to use nature, PDF generation tools, and straightforward documentation, EO.Pdf is a strong contender if you don't need an extensive range of features.
You can try the 30-day free trial to check out their available features.
9 .NET API products for your office documents