Test in a live environment
Test in production without watermarks.
Works wherever you need it to.
This article was written by Jeff Fritz, a well-received authority in .NET Development.
In this article, Jeff reviews and compares the IronPDF library with three other leading PDF libraries for C#.NET: Aspose, SyncFusion, and iTextPdf
I am investigating the entire developer experience of interacting with three commercial PDF management products for developers and comparing them to the IronPDF experience. We will compare and rate each product in the following areas:
We will conclude with a final scorecard for the tools.
Developers have a world of PDF products to choose from. How can they separate the products and choose the right one for their project? C# developers look in three primary places when researching software tools: search engines, GitHub, and NuGet. We'll search for "PDF Software C#" on DuckDuckGo, a private search engine, and look for these PDF tools on GitHub as well as NuGet.org. NuGet is the .NET package repository.
Product | DuckDuckGo | GitHub | NuGet |
---|---|---|---|
IronPDF | 5 | Not found | 5 |
Aspose | 22 | 37 | 3 |
SyncFusion | 49 | N/A | 8 |
iTextPDF | Not found | 40 | 7 |
Notes: I limited the search to the first 100 results on each service and was unable to locate IronPDF's GitHub repository as well as the iText website on DuckDuckGo. SyncFusion does not have a GitHub repository with PDF creation samples.
Each of the products has a different approach to product acquisition from their websites.
IronPDF makes it clear with a download button on the front page
The download button routes to NuGet.org and the standard .NET package installation instructions.
Aspose has a click-through on the front page where you must choose a language, and then you are presented with details about that version of the product and a download button
Aspose will then prompt you to download the tools with a page that contains NuGet instructions and several paragraphs of promotional material
SyncFusion has their PDF management library filed under "Document Processing - PDF". Their subsite looks like the following:
You must then fill out a form to create an account on their website, complete with an email address, phone number, and company name. SyncFusion verifies your email with a text message and then allows you to download an installer for their software. You can also install a trial package from NuGet, but they say the installer provides the "full product". In the days following sign-up for SyncFusion's website, I have received two emails and two phone calls offering to help get started. The emails and phone calls were friendly in tone, however, I found the phone calls to be a little invasive.
iTextPDF makes it clear with one product and one link to their product:
The download screen provides three options to download, with requirements to sign up with phone number, email, job title, and company name.
I found the volume of choices from iText overwhelming and wasn't sure what to download. I chose iText 7 and was then led to another screen to choose from nine PDF-related products to download. Once again, I found this confusing and left me unsure of which libraries and tools I needed for my project.
I was sent a follow-up email from iText with a link to their customer portal and a generated password. I attempted to use their portal site with the credentials provided but was unable to access the site.
With any library that a developer downloads, the licensing will determine if and how they can use the product with their project. A more permissive license will allow the tool to be shipped with a mobile or desktop application, and more restrictive licenses can limit the use of the tool to running only on a protected server.
IronPDF provides a clear button on the front page, next to the 'Free NuGet Download' button that links to the licensing terms. The resultant page makes it very clear how many developers are covered and the number of projects the product can be used with. There is a restriction on the number of offices an organization has. Redistribution of the software as a SaaS product or native application requires an additional licensing fee.
Aspose has six different licensing models available, packaged with no support, support, or with support and consulting. I found their options quite confusing, as there are also limitations on what types of projects you can use the product with, the number of developers licensed, and the size of the organization.
Public-facing website projects including support:
Inclusion | IronPDF | Syncfusion | AsposePDF | iText |
---|---|---|---|---|
1 website, 1 developer, 1 location, Support | $749 | $2,495 | $5,394 | |
10 websites, 10 developers, 10 locations, Support | $2,999 | $13,990 | $28,771 | |
Unlimited websites, Support | $5,999 | N/A | $25,785+ (per year) |
SyncFusion has a one-time fee for their File Formats product that includes support for all of the .NET application types. The fee is charged per developer, with a rate reduction for the second year of a contract. There are no limitations based on the size of an organization, or the number of projects that the product is used with. They also have a free community license available for startup stage companies.
iText has several products available that are open source, but they make it appear that you need to buy a license to use the product.
The option to purchase a commercial license leads to a screen with no purchasing options immediately listed. There is a configuration tool that you must complete with information about your location, language, usage volume, and products you would like to use. The tool then gives a quote for the commercial license.
If the product is available open source, can I just use that without any commercial support options? It's not clear until you click through to their iText 7 Community site and discover that it is covered under the AGPL license, which requires you to release the source code of applications you write that use their library in this model. It's an interesting option, but could confuse developers.
With the different deployment models available for each product, there are different levels of compatibility that are promised on each website. More research is necessary to determine compatibility with different hosting providers and hosting tools like Docker.
Environment | IronPDF | Aspose | SyncFusion | iText |
---|---|---|---|---|
COM | Yes | |||
.NET Framework | Yes | Yes | Yes | Yes |
.NET 5 | Yes | Yes | Yes | |
.NET 6 | Yes | Yes | Yes | |
.NET Standard | Yes | Yes | Yes | |
Xamarin | Yes | Yes | ||
MAUI | Yes | |||
Azure | Yes | |||
AWS | Yes | Yes | ||
Mac | Yes | |||
Linux | Yes | |||
Docker | Yes |
Aspose is the only product that claims to work with COM applications, typically a legacy need for developers. iText does not list their supported platforms on their website, and a scan of their NuGet packages indicates support for the platforms indicated. SyncFusion lists support for several user-interface frameworks but not specific runtime versions. iText was the only product besides IronPDF to claim support for a cloud service, with a banner highlighting support for AWS.
I reviewed each of the products and their 'Getting Started' experience as outlined on their websites. This is the "build your first app with the product" directions for each of these products.
I was able to install and get started with a sample version of IronPDF using NuGet, and one line of code. Very handy, and did not clutter my system.
The IronPDF sample on IronPDF's Get Started page works with a simple console or native application using .NET 6 and earlier. It creates and loads a new PDF with a simple "Hello World" block of text, completing a 5-line code sample with writing out the file.
The sample code is clear and works nicely with .NET 6 / C# 10 formatting. The online code block has a "copy to clipboard" button that makes it a snap to run.
The file is written into the bin/ folder under the project, and for a quick sample, it works. I would have liked to have had it written next to the code file I just wrote as some folks might not know to look in the bin/ folder for content.
I had to install a large download, 217MB in size, to start using the Aspose libraries on my system. This didn't install any applications, but just placed the libraries for Aspose on disk.
The Aspose sample is in their docs under a 'Get Started' section, making it a little harder to locate. The code sample at Aspose's Hello World Example includes some prose around it that explains what the code is attempting to do and feels a little repetitive with the comments in code.
The Aspose sample does not work as written and needs to be improved. In my review of their product, I ran into the following problems:
I had to download a large 874MB file to get started, and the installation required me to log in to a Syncfusion server to extract and work with the libraries. The installer created a 'Control Panel' application that allowed me to navigate around a number of demos on disk.
SyncFusion's demo is located about halfway down their product page at Syncfusion's PDF Framework for .NET with a blue background and light blue text on it. According to Lighthouse, this is low contrast and not accessible to some users.
I pasted the Syncfusion code into Visual Studio and was unable to have Visual Studio generate an appropriate "using statement" for the objects referred to in the demo code. In fact, when I asked Visual Studio to attempt to locate and generate a using statement, it referred me to install a competing package:
The code for SyncFusion's sample did nothing as presented on screen. The demo code writes a PDF into a MemoryStream, an object that manages file contents in-memory. I modified the code to write to a file on disk, and it properly generated a file that contained "Hello World".
The iText demo is written in a clear code editor in the middle of their product home page. iText 7 Community Unlike the other demos, iText included a link to see the generated PDF for this code.
I was required to download an installation package from their customer portal, and a day after signing up, I received an email at 5 am with instructions to sign up. The credentials did not work, and I instead downloaded and installed the community packages available on NuGet.
The sample code provided for iText7 does not work as written. This code is also missing a handful of using statements, but once they were added the application did generate a PDF file and write it to the bin/ folder of the project.
This review element investigates the API and interactions that developers will have with the library. Each of these tools has several ways to create and interact with PDF documents. Let's take a look at each.
The documentation for the product is what will make or break it in the long-term with developers. As they dive in and need more advanced features, how quickly can they find that material and are there samples provided that help teach these concepts.
In each of these products, I searched their API documentation for the ability to add digital signatures to a PDF.
The API documents are clear and well organized with a left panel table-of-contents with a live filter. The search box in the top-right also includes a live filter and quickly returned several articles about the various components that provide Signature features. The API site has a light and dark mode, a nice feature developers prefer.
The PdfSignature
class document describes the object but does not include any links to sample code. I searched the ironpdf.com website for "signature" and found sample code that references the PdfSignature
object at IronPDF Digitally Sign a PDF Example.
The Aspose API docs linked me to their PdfFileSignature class when I searched for Signature. This page, like IronPDF's, shows the details of the PdfFileSignature
class, but does not include any links to demos or describe how to use the class.
I returned to the Aspose documentation base page at Aspose PDF for .NET Documentation and searched for signature. I was then presented with a list of relevant articles and clicked through to the 'Add Signature in PDF file" article at Aspose Add Signature in PDF.
SyncFusion's base documentation page for the PDF file formats product is at Syncfusion PDF File Formats Overview and took a few clicks through their site to find it. I didn't have to look far to find the signature sample as the front page of the documentation.
There are no API documents that support the digital signature feature available on the SyncFusion site.
The API documentation for iText is very thorough and generated from each released version. It's a standard look and feel that you'll see from other libraries on the internet. Searching for a signature found a few classes with some great descriptions around those features, but again no links to samples.
I searched the iText website for a Signature sample and was not able to locate one, and instead was presented with several blog articles announcing new partnerships.
The API made available by each of the tools is very descriptive and each takes its own approach to giving the developer full access to creating and managing the content of a PDF document. Thankfully, all of the frameworks have complete autocomplete hints that provide great in-line documentation as you work with their tools in a modern code editor like Visual Studio or Visual Studio Code that provides autocomplete capabilities.
The IronPDF APIs make very difficult and complex interactions easy to do with simplified commands like "RenderHtmlAsPdf", but still provide deep access to the creation and placement of content, security, metadata, and forms of the document. As a developer, these APIs "speak to the way that I think" about rendering content.
The names and terms used by the IronPDF APIs make it clear you are rendering a document or building a document. Time properties on some of the settings are integers representing milliseconds where I would have preferred a native TimeSpan type. Finally, I would like to see Settings and Options types provided with a modern fluent configuration API like this:
var Renderer = new IronPdf.ChromePdfRenderer(options => {
RenderDelay = TimeSpan.FromSeconds(1)
});
var Renderer = new IronPdf.ChromePdfRenderer(options => {
RenderDelay = TimeSpan.FromSeconds(1)
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
SyncFusion APIs are clear and give very descriptive control over how to interact with their converter tools. There are no shortcuts here, everything is required, and you must tell it which tools you are using with no defaults available. The Settings are extensive with fine-grained control over everything, including the location of the WebKit renderer on disk.
This extra configuration, while not needed in some installations, has caused problems for folks in the past and in future versions SyncFusion promises is not a problem.
The Aspose API is extremely verbose and it makes me wonder if they are trying to make developers more productive at all. The amount of configuration needed to load a document from a website is astounding, ten lines of code or twice as many lines as SyncFusion (five).
One example of this is that Aspose doesn't have APIs to allow you to specify a URL to fetch and convert.
iText has a similar API to Aspose, very verbose and allows direct interaction with writing into the document with different data types, but it's not clear how to create sections of the document. With how explicit the APIs are and the low quality of the documentation, working with iText is difficult at best.
I next wanted to test the rendering and speed capabilities of each tool at converting HTML content to a PDF. I've written some code that is available from Jeff's GitHub repository for PDF Comparisons that you can review to learn more about how I performed each of these tests. I've also stashed a copy of each of the result PDFs there for you to review. I'll test each product for:
The reference website is very simple with no CSS and just text with links and images.
This was a simple three lines of code to execute, and the performance looked good at 835ms. However, when I opened the PDF, I found that none of the images were included in the rendering, a disappointing result with the default configuration.
After a little exploring, I learned that I could add a render delay, and with this configuration, I was able to render a PDF that included the proper images on the page.
With the test version of the tool, there is a watermark that is included in the rendered PDF. In the fully licensed version, this watermark is not present.
SyncFusion was a curious and confusing trip. Their documentation refers to several different ways to render and deliver HTML and PDF with different version numbers and different frameworks requiring different code and configurations as well as installs of binary tools in order to function properly.
Like the IronPDF demo, SyncFusion did not render the images for the page and delivered a PDF with very small margins.
With the test version of the tool, there is a watermark that is included in the rendered PDF. In the fully licensed version, this watermark is not present.
Aspose has a very clear set of directions about how to use their tools. However, based on the instructions on their website for converting a website to a PDF, they have a significant bug that prevents the feature from working. Additionally, their online tool that converts a website to a PDF no longer functions.
iText's documentation is not as easy to find, and we had to read an eBook to get the sample code we were looking for to run this sample. With no code changes, no additional configuration and four lines of code we rendered a very good-looking PDF with no watermarks and good margins.
Tool Used | Speed in milliseconds (lower is better) |
---|---|
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
For this test, we're using ESPN.com, a sports website that has a lot of CSS, images, and JavaScript on the page. Given that Aspose did not function for the simple test, we will skip them going forward. We will use the same code that we utilized for the last demo to create these captures, just substituting the website address.
For reference, here is the appearance of ESPN at the time of this test:
The scores on the top and the report of the state of the game in the middle of the screen are placed with JavaScript, and all positioning and colors are handled with CSS3.
The IronPDF rendering was able to faithfully duplicate and load the dynamic content, however, it appears as though the page was rendered for a mobile device with content elements broken out into separate segments and tiled.
SyncFusion performed a similar 'mobile style' rendering with content tiled vertically. However, we have lost several images that were dynamically loaded by the ESPN site and some of the font formatting is also lost:
For this test, iText refused to run and was throwing a NullReferenceException, preventing it from attempting to render the website.
Tool Used | Speed in milliseconds (lower is better) |
---|---|
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
The final test is to generate a PDF with form entry fields based on a website. The simple newsletter sign-up form I wrote is available in the GitHub repository and renders with Bootstrap 5 in Firefox like so:
Note: the State is a combobox, the Phone field is a telephone field, the Email is an email field, and the Shoe Size is a number field.
Iron really shines in this test, rendering quickly in a similar mobile-friendly layout as evidenced by the hamburger menu button in the top right. The watermarks across the page are annoying in a test version, but removed in the fully licensed version.
All of the textbox fields are rendered as PDF form fields that I can interact with, except for the radio buttons and checkbox at the end. The textboxes have no particular validation or content enforcement on them as they do in the browser.
SyncFusion rendered what appears to be the full desktop version of the website, as there is no hamburger menu button present. The form elements rendered appear as the squares, buttons, and boxes on the screen but none of them are standard PDF data entry fields. The links on the header and footer, while obscured by the watermark, are clickable.
iText was easily the fastest of the three frameworks at rendering the content. However, that speed came at a price. Their rendering did deliver anchor tags that navigated when clicked, but did not reach the original website. All formatting from bootstrap was lost, and all form fields were rendered as plain boxes.
Tool Used | Speed in milliseconds (lower is better) |
---|---|
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
Each of these frameworks has separate support capabilities available and release cadence. For a viable, currently developed and growing framework that will support more of the PDF standard, we would like to see online support available and regular release schedules.
From the NuGet website, it appears that IronPDF has a release once every 2-4 weeks. There are live chat and email support options available. It would be nice to see an online forum or a Discord / Slack server to chat with support and other members of the IronPDF community.
According to NuGet, they release an update of their PDF libraries once a week. SyncFusion has online forums, and an online support ticketing system. There are no live chat support options from SyncFusion.
According to NuGet, Aspose.PDF releases once a month. They offer a free helpdesk, a paid helpdesk, and paid consulting. I do not see any live interactions or community interactions available.
NuGet reports that iText updates their packages once every 2-3 months. Their only support available is through an online JIRA issue tracker and a "contact us" form. There are no live interactions or hosted forums available.
From each section of this document, I ranked the products against each other with four being the highest ranked.
Category | IronPDF | Aspose | SyncFusion | iText |
---|---|---|---|---|
Discovery | 3 | 4 | 2 | 1 |
Acquisition | 4 | 3 | 2 | 1 |
Licensing | 3 | 2 | 4 | 1 |
Compatibility | 4 | 1 | 2 | 3 |
Getting Started | 4 | 1 | 2 | 3 |
API | 4 | 2 | 3 | 1 |
Documentation | 4 | 4 | 3 | 2 |
Render Websites | 4 | 0 | 3 | 2 |
Support | 3 | 4 | 2 | 1 |
Total (higher is better) | 33 | 21 | 23 | 15 |
Notes:
9 .NET API products for your office documents