Comparison · iText alternative
A modern iText alternative,
in nine languages
iText is a deep, mature PDF engine for Java and .NET. rust-pdf does the same enterprise work, PDF/A archival, PAdES signatures, AES-256 encryption and PDF/UA accessibility, but across nine languages, with no AGPL and a flat per-application licence instead of per-document metering. This is an honest, side by side comparison so you can choose the right tool.
The honest short version
iText is excellent software with a quarter century of depth, and on the very latest standards (PDF/A-4 and PDF/UA-2) its ceiling is higher than ours. If you only ship Java or .NET and need those exact levels today, iText is a strong choice and we will say so.
rust-pdf is the better fit when you work in more than Java and .NET, when the AGPL licence on iText Community is a problem for your codebase, when you want predictable flat pricing rather than a per-document meter, or when you need output that is fully offline and deterministic so it can be audited. The rest of this page lays out exactly where each one wins.
Where rust-pdf is different
Four things set rust-pdf apart from iText for teams that are not exclusively on Java or .NET.
Nine languages, one engine
The same compliance core powers Python, C#, Go, PHP, Ruby, Node, Java, Delphi and Swift, with identical behaviour. iText ships for Java and .NET only.
No AGPL, no audits
rust-pdf is not copyleft. A free Community tier plus an offline licence token unlock corporate features, with no obligation to publish your own source.
Flat pricing, no meter
A published per-application annual licence, free then 1,500 and 3,000 USD per year, never a charge that grows with the number of documents you produce.
Offline and deterministic
Runs entirely on your servers with no telemetry, and the same input always produces byte-identical output, so files can be diffed, verified and archived.
rust-pdf vs iText, feature by feature
A fair comparison on the work both libraries are built for. Where iText leads, the table says so.
| Capability | iText (by Apryse) | rust-pdf |
|---|---|---|
| Languages | Java, .NET | Python, C#, Go, PHP, Ruby, Node, Java, Delphi, Swift |
| PDF/A levels | 1, 2, 3 and 4 (all) | 1b, 2b, 2a, 3b, 3a |
| PAdES signatures | B-B, B-T, B-LT, B-LTA | B-B, B-LT, B-LTA + RFC 3161 + LTV |
| PDF/UA accessibility | UA-1 and UA-2 | UA-1 |
| Encryption | RC4, AES-128, AES-256, certificate | RC4, AES-128, AES-256 |
| ZUGFeRD / Factur-X | Build it yourself on PDF/A-3 | First-class, one call |
| Licensing | AGPL v3 or commercial | Flat per-application, offline token, no AGPL |
| Pricing model | Quote-only, historically metered per document | Published: free, 1,500, 3,000 USD, OEM |
| Deployment | On-prem library | On-prem, fully offline, deterministic output |
| Independent validation | Yes | veraPDF, pdfsig, openssl cms, qpdf, mutool |
Where iText leads honestly: it reaches PDF/A-4 and PDF/UA-2, which rust-pdf does not yet target, and it carries more than two decades of add-ons. Everywhere else the trade favours breadth of language, licensing clarity and predictable cost.
Licensing, side by side
For most teams the licence, not a feature checkbox, is the deciding factor.
iText
- AGPL v3 for the free edition. It is copyleft, and the network-use clause can require you to publish the source of an application that uses it over a network.
- Commercial licence to avoid the AGPL. Pricing is quote-only and has historically been metered by the volume of documents processed.
- Post-acquisition, the vendor has a public reputation for active licence audits, which adds compliance overhead.
rust-pdf
- Not AGPL. Your source stays yours, with no copyleft or network-use obligation.
- Flat per-application annual licence, activated by an offline token. No per-document meter, ever.
- Published prices: free Community, Pro at 1,500 USD per year, Enterprise at 3,000 USD per year, plus OEM and Site licensing. One licence covers every language and unlimited servers.
When iText is still the right choice
Pick iText if any of these is true
You ship only on Java or .NET and need PDF/A-4 or PDF/UA-2 today, you rely on its mature add-ons such as HTML to PDF, OCR or redaction, or you already hold a commercial iText licence you are happy with. In those cases iText has the deeper standards ceiling and the longer track record. We would rather you pick the tool that fits.
Pick rust-pdf if any of these is true
You work in Python, Go, PHP, Ruby, Node, Delphi or Swift as well as Java and .NET, the AGPL is a non-starter, you want a flat published price with no document meter, or you need fully offline, deterministic output that is validated by independent tools. PDF/A up to 3a, PAdES through B-LTA, AES-256 and PDF/UA-1 cover the large majority of regulated work.
The same signature, in the language you actually use
A long-term-valid PAdES signature, one of the harder things iText is bought for, in four of the nine rust-pdf languages. The API is idiomatic in each, but the behaviour is identical because it is one engine underneath.
# pip install rustpdf
import rustpdf
pdf = open("contract.pdf", "rb").read()
key = open("signing-key.pkcs8.der", "rb").read()
cert = open("signing-cert.der", "rb").read()
signed = rustpdf.sign(pdf, key, cert, reason="Approved", pades=True) # PAdES-B-B
lt = rustpdf.add_dss(signed, certs=[cert], crls=[crl]) # -> B-LT
lta = rustpdf.timestamp(lt, tsa_key, tsa_cert) # -> B-LTA
open("contract.signed.pdf", "wb").write(lta)
# Verify in a shell: pdfsig contract.signed.pdf -> "Signature is Valid."
// dotnet add package RustPdf
using RustPdf;
byte[] signed = Pdf.Sign(pdf, keyDer, certDer, reason: "Approved", pades: true); // B-B
byte[] lt = Pdf.AddDss(signed, certs: new[]{ certDer }, crls: new[]{ crl }); // B-LT
byte[] lta = Pdf.Timestamp(lt, tsaKeyDer, tsaCertDer); // B-LTA
// go get github.com/rustpdf/rustpdf-go@latest
signed, _ := rustpdf.Sign(pdf, key, cert, rustpdf.SignOptions{Reason: "Approved", Pades: true})
lt, _ := rustpdf.AddDss(signed, [][]byte{cert}, [][]byte{crl}) // B-LT
lta, _ := rustpdf.Timestamp(lt, tsaKey, tsaCert) // B-LTA
// npm install rustpdf
const { sign, addDss, timestamp } = require("rustpdf");
const signed = sign(pdf, key, cert, { reason: "Approved", pades: true }); // B-B
const lt = addDss(signed, { certs: [cert], crls: [crl] }); // B-LT
const lta = timestamp(lt, tsaKey, tsaCert); // B-LTA
See the same pattern for PDF/A, AES-256 encryption and PDF/UA accessibility in the documentation.
iText alternative FAQ
Is rust-pdf a drop-in replacement for iText?
No. rust-pdf has its own idiomatic API in each language, so a migration is feature for feature, not line for line. It covers the same enterprise jobs as iText: PDF/A archival, PAdES signatures with timestamps and LTV, AES-256 encryption and PDF/UA accessibility. If your code uses those capabilities, there is a matching path in rust-pdf.
Does rust-pdf avoid the AGPL licence?
Yes. rust-pdf is not AGPL. Basic generation is free in the Community tier, and corporate features are unlocked by an offline licence token. There is no copyleft obligation on your own source code and no network-use clause forcing you to publish it, which is the main legal concern teams raise about iText Community.
Which languages does rust-pdf support that iText does not?
iText ships for Java and .NET. rust-pdf adds Python, Go, PHP, Ruby, Node and TypeScript, Delphi and Swift on top of Java and .NET, nine bindings in total, all over one shared Rust core with identical behaviour.
Is rust-pdf really compliant, or just marketing?
Output is checked by independent open-source tools, not by self-declaration. veraPDF validates PDF/A (1b to 3a) and PDF/UA-1, pdfsig and openssl cms validate the PAdES signatures, and qpdf and mutool check structure. The same engine produces byte-identical output every run, so files are auditable and diffable.
How does rust-pdf pricing compare to iText?
rust-pdf publishes flat per-application annual pricing: free Community, Pro at 1,500 USD per year, Enterprise at 3,000 USD per year, and OEM or Site licensing for redistribution and org-wide use. There is no per-document meter. iText commercial pricing is quote-only and has historically been metered by the volume of documents processed.
Where is iText still ahead of rust-pdf?
iText reaches PDF/A-4 and PDF/UA-2, while rust-pdf currently targets PDF/A up to 3a and PDF/UA-1. iText also has more than two decades of add-ons such as HTML to PDF, OCR and redaction tooling. If you only ship Java or .NET and need those exact ceilings today, iText has the deeper standards ceiling.
Try rust-pdf in your language
Prototype for free, then license the corporate features when you ship. One core, the same PDF/A, signatures, encryption and accessibility across nine languages.