DEV Community

IronSoftware
IronSoftware

Posted on

iText AGPL License: What Commercial Use Really Costs

Many developers discover iText through Stack Overflow answers and tutorials recommending it as a "free" PDF library. What these resources often fail to mention is that iText has operated under the AGPL license since 2009, and using AGPL-licensed software in a commercial web application requires either open-sourcing your entire application or purchasing a commercial license. This article explains what AGPL actually requires, documents the licensing history, and examines the real costs of using iText in commercial projects.

Understanding the AGPL License

The GNU Affero General Public License (AGPL) is a "copyleft" license, meaning any software that incorporates AGPL-licensed code must itself be released under AGPL terms. The AGPL was specifically designed to close the "SaaS loophole" in the traditional GPL license.

Under the standard GPL, the source code disclosure requirement is triggered only when you distribute the software. Companies running software on their own servers to provide web services were not required to share their source code because no distribution occurred. The AGPL adds Section 13, which requires that if users interact with AGPL software over a network, the source code must be made available to those users.

In practical terms, this means:

If you use iText in a web application, any user who interacts with that application must be able to download the complete source code of your application under AGPL terms. This includes your proprietary business logic, database schemas, API implementations, and any other code that comprises the application.

The requirement extends to the entire application, not just the component using iText. As iText's own documentation states, the AGPL is a "copyleft license" that requires "disclosure of full source code of application, including your own application."

What AGPL Compliance Actually Requires

To comply with AGPL when using iText in a web application, you must:

  1. Make your complete application source code available under AGPL
  2. Allow anyone who receives that code to modify and redistribute it
  3. Include the AGPL license text and original copyright notices
  4. State all significant changes made to the software
  5. Prominently mention iText and include iText copyright in output file metadata
  6. Retain the producer line in every PDF created or manipulated using iText

For most commercial software companies, requirements 1 and 2 are incompatible with their business model.

The Licensing History

Understanding how iText arrived at AGPL licensing helps explain why so many developers are caught off guard.

The LGPL Era (2000-2009)

iText was created in 2000 by Bruno Lowagie. For nearly a decade, it was distributed under the Mozilla Public License (MPL) and the GNU Lesser General Public License (LGPL). These licenses allowed commercial use without requiring disclosure of proprietary source code, as long as modifications to iText itself were shared.

iTextSharp, the .NET port, was released under the same permissive licensing. Version 4.1.6 of iTextSharp was the last version released under LGPL/MPL terms.

The Switch to AGPL (December 2009)

On December 1, 2009, with the release of iText 5.0.0, the license changed to AGPL. According to iText's official history, this followed "a comprehensive code review" and formal approval from all contributors obtained in September 2009.

The licensing change affected both the Java version (iText) and the .NET version (iTextSharp). From this point forward, any commercial use of iText 5.0.0 or later required either:

  • Full AGPL compliance (open-sourcing your entire application)
  • Purchasing a commercial license

Timeline Summary

Date Event License
2000 iText created MPL/LGPL
2004 iTextSharp (.NET port) released MPL/LGPL
Dec 2009 iText 5.0.0 released AGPL or Commercial
2016 iText 7 released AGPL or Commercial
Apr 2020 Subscription-based commercial licensing introduced AGPL or Commercial
2022 iText acquired by Apryse AGPL or Commercial

Why Developers Get Caught

The iText AGPL license catches developers off guard for several interconnected reasons.

Outdated Stack Overflow Answers

Stack Overflow contains thousands of answers recommending iText and iTextSharp for PDF generation, many written before the AGPL switch or without mentioning licensing implications. When developers search "C# PDF generation" or "Java create PDF," they find answers that present iText as a straightforward open-source solution.

iText's founder, Bruno Lowagie, has acknowledged this issue and even published a book titled "Best iText Questions on StackOverflow" addressing common questions. However, many older answers remain online without licensing warnings.

NuGet and Maven Present It as Free

Package managers list iText packages without prominent licensing information. On NuGet, the iText 7 package description mentions AGPL only in fine print. On Maven Central, the license is listed but the implications are not explained. Developers accustomed to MIT or Apache 2.0 licensed packages may not realize AGPL has fundamentally different requirements.

The LGPL Versions Still Exist

The old LGPL-licensed versions (iTextSharp 4.1.6, iText 2.1.7) remain available on NuGet and Maven repositories. Forks like "iTextSharp-LGPL" and "iTextSharp.LGPLv2.Core" explicitly target developers seeking to avoid AGPL.

However, iText strongly advises against using these old versions. According to their knowledge base, "there could be many undisclosed vulnerabilities" in addition to disclosed CVEs, and there are "potential intellectual property issues with proprietary code used in iText 2.x and earlier versions."

Legal Review Discovers the Issue Late

The licensing issue typically surfaces during code audits, legal review before acquisition, or preparation for enterprise sales. By this point, iText may be deeply integrated into the application, making the choice between purchasing a commercial license and extensive refactoring costly either way.

The Real Cost of iText Commercial Licensing

iText does not publish fixed commercial license prices. According to their website, "pricing for the commercial license is customized and calculated depending on your specific use case."

Available Data Points

Based on third-party data from Vendr's internal transaction database:

  • Average annual cost: approximately $45,000
  • Maximum observed price: up to $210,000
  • Pricing model: Annual subscription (1, 2, or 3-year terms)
  • OEM customers: Perpetual licensing still available

Volume-Based Pricing

iText's volume-based license pricing is "based on the specific volume of PDFs that your company processes (i.e., generates and/or manipulates) annually." The more PDFs your application generates, the higher the license cost.

What the License Includes

A commercial iText license includes:

  • Release from AGPL copyleft requirements
  • Professional support (3 team members can access support tickets)
  • Maintenance updates and new releases
  • Faster access to security patches

The Subscription Shift

In April 2020, iText transitioned from perpetual licensing to subscription-based commercial licenses. New customers and new installations now operate on a subscription model. The only exception is for OEM customers, who can still obtain perpetual licenses.

This means the commercial license cost is recurring, not one-time. A company using iText commercially commits to annual payments for as long as they use the library.

Enforcement and Legal Risk

iText actively monitors for unlicensed commercial use.

Detection Methods

According to iText's knowledge base, the library contains "some visible fingerprints (e.g., the producer line) as well as invisible fingerprints" that they do not disclose publicly. They regularly discover PDFs created using iText that cannot be linked to a paying customer.

Enforcement Examples

iText has documented cases of discovering unlicensed use:

A large publishing house in Germany was contacted after iText discovered their PDFs contained iText fingerprints. According to iText, "they were surprised: they didn't know they were using iText." The company had hired an external integrator who incorporated iText without purchasing a license.

In Belgium, iText discovered that Smals, a government integrator, had upgraded applications from iText 2 (LGPL) to iText 5 (AGPL) without purchasing commercial licenses or complying with AGPL requirements.

Legal Firm Commentary

The law firm Beeman & Muchmore has published commentary on iText's licensing enforcement, noting they have "counseled numerous licensees who are on the receiving end of Apryse's aggressions." Apryse acquired iText in 2022 and now handles commercial licensing.

The same firm reports that iText characterizes contact about licensing as "friendly," stating "in most cases, it isn't even necessary to go to court." However, the implicit alternative to purchasing a license is potential AGPL violation litigation.

Alternatives for Commercial Projects

Developers who need PDF generation without AGPL complications have several options.

OpenPDF

OpenPDF is a fork of the last LGPL-licensed version of iText, actively maintained on GitHub. It provides similar functionality under LGPL/MPL licensing, allowing commercial use without copyleft requirements.

Limitations: OpenPDF is based on iText 2.x/4.x code, meaning it lacks features introduced in iText 5 and later. The codebase is over 15 years old, though the community continues to add features and fix bugs.

Commercial Libraries with Transparent Pricing

Several commercial PDF libraries offer upfront pricing without viral licensing complications.

A Different Approach: IronPDF

IronPDF provides PDF generation for .NET, Java, Python, and Node.js with a commercial licensing model designed to avoid the ambiguities that complicate iText adoption.

Licensing Model Comparison

Aspect iText (AGPL) iText (Commercial) IronPDF
License type Copyleft open source Subscription Perpetual
Source code requirement Must open-source your app No No
Published pricing No No (custom quotes) Yes (from $749)
Payment model Free (with AGPL compliance) Annual subscription One-time purchase
Renewal required N/A Yes (annual) Optional (for updates)

Perpetual vs. Subscription

IronPDF licenses are perpetual. A single purchase grants the right to use the software indefinitely. Support and updates are included for one year, with optional renewal at published rates. There is no requirement to continue paying to use software you have already licensed.

This contrasts with iText's subscription model, where commercial rights require ongoing annual payments.

Transparent Pricing

IronPDF publishes pricing on their website:

  • Lite License: Starts from $749 (1 developer, 1 project)
  • Professional License: For teams up to 10 developers
  • Enterprise License: Unlimited developers, OEM/SaaS options available

No custom quote process is required to understand costs before starting a project.

Code Example

Converting HTML to PDF with IronPDF requires minimal code:

using IronPdf;

public class PdfGenerator
{
    public void GenerateInvoice(string htmlContent, string outputPath)
    {
        // Create renderer - no license key required for development/testing
        var renderer = new ChromePdfRenderer();

        // Convert HTML to PDF using embedded Chromium engine
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the result
        pdf.SaveAs(outputPath);
    }

    public byte[] GeneratePdfForWebResponse(string htmlContent)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Return bytes for web response without saving to disk
        return pdf.BinaryData;
    }
}
Enter fullscreen mode Exit fullscreen mode

Key points about this code:

  • The ChromePdfRenderer class uses an embedded Chromium engine for HTML rendering
  • Full CSS3 and JavaScript support matches what renders in Chrome browser
  • No external dependencies or font configuration required
  • Works on Windows, Linux, macOS, and in Docker containers

For Java developers:

import com.ironsoftware.ironpdf.*;

public class PdfGenerator {
    public static void main(String[] args) {
        // Optional: Set license key for production use
        License.setLicenseKey("YOUR-LICENSE-KEY");

        // Render HTML to PDF
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
            "<html><body><h1>Invoice #1234</h1></body></html>"
        );

        // Save output
        pdf.saveAs("invoice.pdf");
    }
}
Enter fullscreen mode Exit fullscreen mode

API Reference

For complete documentation:

Migration Considerations

When evaluating a switch from iText to IronPDF, consider these factors.

API Differences

iText and IronPDF take different approaches to PDF generation:

Task iText 7 IronPDF
HTML to PDF HtmlConverter.convertToPdf() ChromePdfRenderer.RenderHtmlAsPdf()
Create from scratch Document + Paragraph builders HTML/CSS or PdfDocument API
Merge PDFs PdfMerger class PdfDocument.Merge()

Migration complexity depends on how extensively your application uses iText-specific document construction APIs versus HTML-based generation.

What You Gain

  • Clear licensing with no copyleft obligations
  • Published, predictable pricing
  • Perpetual license (no mandatory renewals)
  • Chrome-based rendering with full CSS3/JavaScript support

What to Consider

  • IronPDF is commercial software (30-day free trial available)
  • Different API paradigm if migrating from iText's document builder approach
  • Chrome rendering engine adds deployment size (~100MB)

Conclusion

The iText AGPL license requires commercial users to either open-source their entire application or purchase a commercial license with custom, unpublished pricing on an annual subscription basis. This catches many development teams off guard, particularly when the licensing requirement is discovered during legal review or enterprise sales processes.

For teams seeking PDF generation without copyleft complications, IronPDF offers an alternative with perpetual licensing, published pricing, and no requirement to disclose proprietary source code.


Written by Jacob Mellor, CTO at Iron Software with over 25 years of experience building developer tools.


References

  1. Open Source AGPLv3 license | iText PDF{:rel="nofollow"} - iText's official AGPL documentation
  2. What is the difference between AGPL and commercial license?{:rel="nofollow"} - iText knowledge base on licensing differences
  3. iText - Wikipedia{:rel="nofollow"} - History and license change documentation
  4. Can iText 2.1.7 / iTextSharp 4.1.6 or earlier be used commercially?{:rel="nofollow"} - iText's guidance on old versions
  5. iText transitions to subscription-based commercial licenses{:rel="nofollow"} - Announcement of subscription model
  6. GitHub - iTextSharp-LGPL{:rel="nofollow"} - Last LGPL version repository
  7. Software Licensing Trolls: Apryse and iText{:rel="nofollow"} - Legal firm commentary on enforcement
  8. AGPL license is a non-starter for most companies{:rel="nofollow"} - Industry perspective on AGPL in commercial settings
  9. iTextPDF Software Pricing - Vendr{:rel="nofollow"} - Third-party pricing data

For the latest IronPDF documentation and tutorials, visit ironpdf.com.

Top comments (0)