iText
iText is an open-source PDF library designed for programmatically creating, editing, and manipulating PDF documents, primarily supporting the Java and .NET (C#) programming languages.[1] Originally developed by Bruno Lowagie in 1999 at the University of Ghent as a tool for generating student lists, it was first released on February 14, 2000, under the name "interactive text" and has since evolved into a comprehensive toolkit for digital document workflows.[2]
The library's core functionality revolves around high-level APIs for tasks such as generating PDFs from scratch, merging or splitting existing files, filling interactive forms, and ensuring compliance with standards like PDF/A, PDF/UA, and PDF 2.0.[1] Low-level APIs allow developers to read, insert, update, or delete PDF objects directly, supporting features like Unicode handling, modern encryption, batch processing, and large file management.[3] iText Core, the foundational component available in version 9 as of 2025, serves as the basis for both open-source and commercial editions, with add-ons extending capabilities for HTML-to-PDF conversion (pdfHTML), text redaction (pdfSweep), optical character recognition (pdfOCR), and more.[1]
Historically, iText transitioned from an academic project to a commercial entity through key milestones: the release of iText 1.0.0 in 2003, the publication of the first iText in Action book in 2006, and the founding of 1T3XT BVBA in 2008 to commercialize the software.[2] A significant shift occurred in 2009 with the license change from MPL/LGPL to the GNU Affero General Public License (AGPL), which requires source code disclosure for distributed applications, alongside the launch of iText 5.0.0 and its .NET port, iTextSharp.[2] The company reorganized as iText Software BVBA in 2011, expanded internationally with a U.S. office in 2013, and released iText 7 in 2016 as a unified platform for Java and .NET.[2] Further growth included the acquisition by PDFTron in 2022 (later part of Apryse) and releases of iText 8 in 2023 and iText 9 in 2024 (with iText Suite 9.3 in October 2025), incorporating enhanced security, digital signatures, and PAdES support.[2][4]
Licensing options include the AGPL for the free iText Community edition, which offers full core features but mandates open-sourcing derivative works, or commercial licenses through iText Suite for proprietary use without such requirements, providing additional support and add-ons.[3] With millions of users worldwide and applications in industries like finance, healthcare, and publishing, iText remains a leading solution for PDF automation, backed by an active developer community and extensive documentation.[5]
Overview
Core Functionality
iText serves as a programmable library designed for creating, editing, inspecting, and maintaining PDF documents within Java and .NET environments, enabling developers to automate complex PDF workflows programmatically.[1] It provides high-level APIs that abstract the intricacies of PDF structure, allowing users to generate documents from scratch or modify existing ones efficiently. Core operations include merging and splitting PDF files, adding elements such as text, images, and interactive forms, as well as extracting content like text, tables, and images for further processing.[6] These capabilities support a range of automation tasks, from batch processing large volumes of documents to integrating PDF handling into enterprise applications.
The library excels in high-performance features tailored for demanding scenarios, such as handling extensive documents without compromising speed or memory usage. It incorporates font embedding to ensure consistent rendering across devices and supports internationalization through handling of complex scripts, including CJK, Arabic, and Indic languages, via dedicated modules like pdfCalligraph.[6] This makes iText suitable for global applications requiring precise typography and layout control. Additionally, its extensible architecture allows for custom extensions, enhancing its adaptability to specific needs like optimizing file sizes or integrating with other document formats.
Common use cases demonstrate iText's versatility in practical settings, such as generating dynamic reports from data sources, automating invoice creation with embedded barcodes and signatures, and streamlining digital document workflows for archiving or compliance.[1] For instance, organizations leverage it to fill and flatten PDF forms at scale for customer campaigns, reducing manual intervention while maintaining PDF standards compliance.[6] These functionalities position iText as a foundational tool for developers building robust PDF solutions in professional environments.
iText provides primary support for the Java programming language, requiring JDK 17 or later for iText 9.x (with earlier versions such as 7.x supporting JDK 8 or higher), enabling developers to integrate PDF functionality into Java-based applications.[7][8] For .NET environments, it supports C# through iText for .NET, targeting .NET Standard 2.0 and compatible frameworks such as .NET Core 2.0 and .NET Framework 4.6.1 or higher, with iTextSharp serving as the legacy .NET port of earlier iText 5 versions.[9][10][11]
As of iText 9.3 (October 2025), the library includes support for modern frameworks like .NET MAUI AOT.[4]
The library exhibits strong cross-platform compatibility, operating seamlessly on Windows, Linux, and macOS operating systems due to the inherent portability of Java and .NET runtimes.[1] It also integrates effectively with cloud environments, including AWS Marketplace for bring-your-own-license deployments and Azure for hosting related components.[12][13]
Integration with development ecosystems is facilitated through standard build tools: Maven and Gradle for Java projects via repositories like Maven Central or iText's Artifactory, and NuGet for .NET projects.[14][10] Common IDEs such as Eclipse and IntelliJ IDEA support Java development with iText, while Visual Studio handles .NET integrations efficiently.[14][10]
For mobile usage, iText offers support on Android through Java bindings starting from version 7.2.3, allowing PDF operations in mobile applications, though iOS integration relies on .NET cross-platform tools such as .NET MAUI (supported since iText 9.2).[15][16] The library is particularly optimized for server-side applications, where it handles high-volume PDF processing in enterprise environments.[1]
System requirements vary by use case, with basic operations feasible on standard hardware and more complex tasks, such as large-scale document generation, requiring scalable resources like multi-core CPUs and several gigabytes of RAM depending on workload intensity.[17]
History
Founding and Early Development
iText originated in 1998 at Ghent University (UGent) in Belgium, where Bruno Lowagie, a civil architectural engineer and university employee, developed an initial PDF library named rugPDF as part of academic research into PDF generation.[18][19] This early project addressed the need for programmatic PDF creation in academic and web applications, stemming from Lowagie's frustration with the lack of suitable open-source tools for generating dynamic documents like student lists.[2]
In 1999, Lowagie rewrote rugPDF from scratch, rebranding it as iText—short for "interactive text"—to improve its architecture and usability for Java-based environments.[20] The first public release, version 0.30, occurred on February 14, 2000, and was made available as open-source software under the Mozilla Public License (MPL) and GNU Lesser General Public License (LGPL).[2][21] Initially focused on basic PDF generation and manipulation, iText enabled developers to insert dynamic content into PDFs programmatically, filling a gap in Java tools for server-side document creation.[2]
Early development saw key contributions from Paulo Soares, who joined the project in the summer of 2000 and became one of its primary developers.[22] Soares's involvement led to the creation of iTextSharp, a .NET port of iText, with initial work beginning around that time to extend the library's reach beyond Java.[23] By the mid-2000s, iText had gained traction in academic and small-scale applications, but growing enterprise demand prompted a shift toward commercialization.
In 2009, as adoption expanded, Lowagie and partners formed iText Software Corp. to manage the library's development and provide professional support, marking the transition from a university-led open-source project to a structured commercial entity.[2] This move coincided with updates to the licensing model to accommodate enterprise needs.[2]
Major Releases and Milestones
In 2009, iText 5 marked a pivotal shift with the license change to AGPLv3 and its release that year, introducing support for Java 5 and enhancements to form handling and digital signing capabilities.[24][25][2] This version also launched iTextSharp for .NET, expanding cross-platform development and solidifying iText's role in PDF manipulation.[2]
The introduction of iText 7 in 2016 represented a complete redesign, adopting a modular architecture with add-ons for specialized tasks, alongside optimizations for handling large files through improved memory management and rendering efficiency.[26][21][27] These changes unified Java and .NET implementations under iText Core, enhancing intuitiveness and future-proofing the library.[2]
iText 8, released in 2023, integrated built-in FIPS 140-2 compliance via direct support for Bouncy Castle FIPS APIs and advanced ISO cryptographic standards such as ISO/TS 32001 for SHA-3 digests and ISO/TS 32002 for ECDSA/EdDSA signatures, streamlining digital signing processes.[28][29][30]
In 2024, iText 9 advanced security further by incorporating ISO/TS 32003 and ISO/TS 32004 standards for AES-GCM encryption, MAC integrity protection in secure PDFs, and a dedicated API for comprehensive digital signature validation.[31][32]
In 2025, iText continued evolving with releases such as version 9.1.0 in February (enhanced SVG and CSS support, faster tables), 9.2.0 in May (.NET MAUI AOT compatibility and PDF/UA-2 validation), and 9.3.0 in October (improved OCR, digital signature validation, and file optimization).[33][16][4]
On the corporate front, iText became commercially available in 2008 with the sale of its first proprietary license, enabling revenue streams alongside open-source distribution.[34] In April 2022, iText was acquired by PDFTron (rebranded as Apryse in 2023), which broadened its global development resources and integrated it into a larger document processing ecosystem.[5][2] The library's 20th anniversary in 2020 was commemorated with the release of iText 7.1.10, highlighting ongoing updates while reaffirming its open-source heritage.[35]
Licensing and Distribution
Open Source Licensing
iText adopted the GNU Affero General Public License version 3 (AGPLv3) with the release of version 5.0.0 in December 2009, marking a significant change from its prior Mozilla Public License (MPL) and GNU Lesser General Public License (LGPL) arrangements.[36] This transition followed an extensive code review and intellectual property cleanup conducted between 2007 and 2009, including obtaining contributor license agreements and resolving ambiguities from borrowed code snippets, to ensure a robust open-source foundation.[24] The switch to AGPLv3 was specifically aimed at preventing proprietary, closed-source exploitation of the library while encouraging contributions back to the community, thereby protecting against commercialization without reciprocal open-source development.[24]
Under the AGPLv3, iText is free for use in open-source projects that comply with its copyleft provisions, which mandate that any modifications or derivative works must also be released under the same license.[37] A key distinction of AGPLv3 from earlier GPL variants is its extension to network-based distribution: if iText is incorporated into software offered as a service over a network (such as a web application), the complete source code of that software—including iText integrations—must be made publicly available to users interacting with it.[38] This ensures that users can access, study, and potentially improve the software, fostering collaborative development. Non-compliance, such as using iText in closed-source environments without source disclosure, constitutes a license violation.[37]
The community edition of iText, referred to as iText Core or iText Community, encompasses the core PDF creation and manipulation functionalities licensed under AGPLv3, available at no monetary cost but subject to these stringent copyleft requirements.[3] It supports essential operations like document generation, text extraction, and basic security features, making it suitable for projects committed to open-source principles. Source code for the Java and .NET versions, along with detailed version histories, is hosted on official GitHub repositories, enabling developers to review, contribute, and track changes.[39][40]
Some notable forks, such as OpenPDF, maintain versions based on pre-5.0 iText code under the original LGPL/MPL licenses, providing alternatives for users seeking less restrictive terms.
Commercial Options and Support
iText employs a dual-licensing model, offering proprietary commercial licenses alongside the open-source AGPLv3 alternative, enabling developers to integrate the library into closed-source applications without the requirement to disclose their source code.[41] This approach allows enterprise users to avoid the copyleft restrictions of the AGPL while utilizing iText's full capabilities for PDF generation and manipulation in proprietary software.[37]
Commercial license types include volume-based subscriptions, which are priced according to the annual number of PDFs processed and offer discounts for higher volumes; unit-based end-user device licenses, suitable for desktop, laptop, or mobile applications with unlimited PDF output per licensed device; and custom OEM distribution or enterprise agreements tailored to specific deployment needs.[42][43] Subscriptions, such as annual plans covering iText products, provide ongoing access to updates and maintenance.[41]
These licenses include benefits such as access to professional support teams for issue resolution and bug fixes, free upgrades to new releases, and the ability to use iText add-ons in closed-source environments without AGPL obligations.[44] Paid support agreements are mandatory for the first year of a commercial license and renewable annually, granting priority access to in-house developers via a dedicated support portal.[44] While specific SLAs are customized, enterprise agreements often incorporate service level commitments alongside intellectual property indemnity for verified claims.[45]
Pricing structures are custom and determined by factors like document volume, deployment type (server or client-side), and features required, with volume discounts available; initial costs typically start in the low thousands for developer or small-scale use, scaling to enterprise bundles for high-volume operations.[45][42] Separate paid support agreements handle ongoing maintenance beyond the initial license term.[44]
iText's licensing model has faced criticism for aggressive enforcement of AGPL terms, with some users and commentators labeling Apryse/iText as a "licensing troll" in disputes over compliance as of 2025.[46]
Since its acquisition by PDFTron (which rebranded as Apryse in February 2023) in April 2022, iText's commercial offerings have benefited from enhanced global support infrastructure, integrating with Apryse's broader document processing ecosystem for improved enterprise scalability and service delivery.[47][2]
Technical Features
PDF Creation and Manipulation
iText's PDF creation capabilities rely on a modular architecture in its core library, primarily utilizing the PdfWriter class to handle output streams and compression settings, the low-level PdfDocument for structural management, and the high-level Document class from the layout module for adding content elements. The Document class serves as the entry point for layout, allowing developers to add hierarchical elements such as Paragraph for text, Table for tabular data, and Image for graphics, which are rendered into PDF pages automatically. For instance, basic PDF generation involves instantiating a PdfWriter with an output file, creating a PdfDocument from it, and then using Document to append content.[48]
Manipulation of existing PDFs is facilitated through the PdfReader class, which parses input files to create a readable PdfDocument, enabling operations like merging, stamping, and extraction. Merging multiple PDFs into a single document uses the PdfMerger utility, which copies pages while preserving structure, such as form fields via PdfPageFormCopier. Note that in iText 9, the PdfMerger constructor requires PdfMergerProperties. Stamping adds or overlays content on existing pages using PdfCanvas for direct drawing or annotations, while content extraction accesses text, images, or metadata via reader methods on PdfPage objects. A representative example for merging involves creating a destination PdfDocument, instantiating PdfMerger, and sequentially merging source documents by page range.[49]
Advanced operations include handling dynamic forms with PdfAcroForm, which manages interactive fields like text boxes and checkboxes; developers can fill fields by accessing them via getField() and setting values, ensuring appearance generation for proper rendering. Annotations, such as text markups or highlights, are added using PdfAnnotation subclasses like PdfLinkAnnotation for hyperlinks, positioned via rectangles on pages and linked to URIs or internal destinations with PdfAction. Hyperlinks, for example, can be created with PdfLinkAnnotation and PdfAction.createURI(), then attached to page elements. Compression optimization is achieved through PdfWriter properties, setting levels from 0 (no compression) to 9 (maximum), alongside object stream compression for reduced file size.[50][51]
The following Java code demonstrates basic PDF creation (compatible with iText 7 and later, minor adjustments may apply for iText 9):
java
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
try (PdfWriter writer = new PdfWriter("output.pdf");
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf)) {
document.add(new Paragraph("Hello World"));
}
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
try (PdfWriter writer = new PdfWriter("output.pdf");
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf)) {
document.add(new Paragraph("Hello World"));
}
For adding a table:
java
import com.itextpdf.layout.element.[Cell](/page/Cell);
import com.itextpdf.layout.element.[Table](/page/Table);
import com.itextpdf.layout.property.UnitValue;
[Table](/page/Table) table = new [Table](/page/Table)(UnitValue.createPercentArray(new float[]{1, 1}));
for (int i = 0; i < 2; i++) {
table.addCell(new [Cell](/page/Cell)().add(new [Paragraph](/page/Paragraph)("Cell " + i)));
}
document.add([table](/page/Table));
import com.itextpdf.layout.element.[Cell](/page/Cell);
import com.itextpdf.layout.element.[Table](/page/Table);
import com.itextpdf.layout.property.UnitValue;
[Table](/page/Table) table = new [Table](/page/Table)(UnitValue.createPercentArray(new float[]{1, 1}));
for (int i = 0; i < 2; i++) {
table.addCell(new [Cell](/page/Cell)().add(new [Paragraph](/page/Paragraph)("Cell " + i)));
}
document.add([table](/page/Table));
An example of form field manipulation:
java
import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.forms.fields.PdfTextFormField;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output.pdf"));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
PdfTextFormField nameField = PdfFormField.createText(pdfDoc, new [Rectangle](/page/Rectangle)(100, 700, 200, 20), "name", "");
form.addField(nameField);
nameField.setValue("[John Doe](/page/John_Doe)");
pdfDoc.close();
import com.itextpdf.forms.PdfAcroForm;
import com.itextpdf.forms.fields.PdfTextFormField;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
PdfDocument pdfDoc = new PdfDocument(new PdfReader("input.pdf"), new PdfWriter("output.pdf"));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
PdfTextFormField nameField = PdfFormField.createText(pdfDoc, new [Rectangle](/page/Rectangle)(100, 700, 200, 20), "name", "");
form.addField(nameField);
nameField.setValue("[John Doe](/page/John_Doe)");
pdfDoc.close();
Performance tips include setting metadata with PdfDocument.addEventHandler() for custom processing, generating bookmarks via Document outlines for navigation, and enabling full compression mode in PdfWriter for large documents to minimize size without quality loss. Multi-threaded processing is supported by creating separate PdfDocument instances per thread, ensuring thread-safety in read operations but synchronizing writes to avoid conflicts. These techniques can significantly reduce file sizes, depending on content complexity and optimization techniques used.[52][53][54]
Digital Signing and Security
iText provides robust tools for securing PDF documents through encryption and digital signatures, ensuring confidentiality, integrity, and authenticity. Encryption in iText supports both legacy RC4 and modern AES algorithms (AES-128 and AES-256), allowing developers to protect documents against unauthorized access. As of iText 9 (released November 2024), enhanced support includes AES-256 in GCM and CFB modes per ISO/TS 32003, along with MAC-based integrity protection for tamper detection.[55][32] User and owner passwords can be set to control access, with the user password restricting opening the document and the owner password managing permissions such as printing or editing. Permission settings are configured via the WriterProperties.setStandardEncryption() method in iText 7, where flags like EncryptionConstants.ALLOW_PRINTING or EncryptionConstants.ALLOW_COPY define allowed operations.[55]
For digital signing, iText implements the IExternalSignature interface, which enables the use of private keys for creating signatures with digest algorithms such as SHA-256 or SHA-512. It supports CMS and PAdES profiles, including CAdES and PAdES-4, to comply with ETSI standards for advanced electronic signatures in PDFs. Timestamping is facilitated through integration with Time Stamping Authority (TSA) servers, such as those from GlobalSign, to provide verifiable timestamps for non-repudiation.[56]
Signature validation in iText involves verifying the document's integrity by hashing the PDF bytes (excluding the signature itself) and comparing against the signed hash using the signer's public key. Long-Term Validation (LTV) extensions are supported via the Document Security Store (DSS) and Document Timestamp (DTS), incorporating Validation Related Information (VRI) like certificates and revocation data (CRL/OCSP) to maintain validity beyond certificate expiration. Certificate chain handling includes the signer's certificate, intermediate certificates up to the root CA, ensuring a trusted path for authenticity checks.[57]
iText 8 (released 2023) achieved FIPS 140-2 compliance through support for modern algorithms like Ed25519 and Ed448 as per FIPS 186-5, with EdDSA and ISO crypto algorithms integrated via ISO/TS 32002 for elliptic curve digital signatures and ISO/TS 32001 for SHA-3 digests, enhancing resistance to cryptographic attacks. iText 9 builds on this with additional ISO/TS 32003 features for advanced encryption and integrity.[30][32]
A typical workflow for creating and verifying a signed PDF (example for iText 7; iText 9 uses updated classes like SignerProperties and SignatureFieldAppearance for appearances) begins with loading an existing PDF using PdfReader, then instantiating PdfSigner with an IExternalSignature implementation (e.g., PrivateKeySignature using a private key and SHA-256). The signature is applied via signDetached(), incorporating the certificate chain and optional TSA timestamp. For verification, load the signed PDF with PdfReader, use PdfPKCS7 or similar to check the hash integrity, validate the certificate chain against trusted roots, and confirm LTV data if present. Note: iText 9 includes breaking changes to signing APIs; consult documentation for updates.[56][57][58]
java
// Example: Creating a signed PDF (iText 7 Java)
PdfReader reader = new PdfReader(src);
PdfSigner signer = new PdfSigner(reader, dest, new StampingProperties());
IExternalSignature pks = new PrivateKeySignature(keyAlias, digestAlgorithm, provider, privateKey, chain);
ISignerMechanismParams mechanismParams = new DefaultDigest();
PdfPKCS12SignatureContainer pksc = new PdfPKCS12SignatureContainer(signer, pks, mechanismParams);
signer.signDetached(pksc);
// Example: Creating a signed PDF (iText 7 Java)
PdfReader reader = new PdfReader(src);
PdfSigner signer = new PdfSigner(reader, dest, new StampingProperties());
IExternalSignature pks = new PrivateKeySignature(keyAlias, digestAlgorithm, provider, privateKey, chain);
ISignerMechanismParams mechanismParams = new DefaultDigest();
PdfPKCS12SignatureContainer pksc = new PdfPKCS12SignatureContainer(signer, pks, mechanismParams);
signer.signDetached(pksc);
This code snippet demonstrates the core steps for detached signing, ensuring the original document remains unaltered while appending the signature.[56]
Standards Compliance
Core PDF Specifications
iText provides full support for ISO 32000-1:2008, the specification defining PDF 1.7, enabling the creation and manipulation of documents with advanced features such as transparency blending modes and optional content groups (OCGs) for layered visibility control.[59][60] This compliance ensures compatibility with standard PDF viewers and preserves document integrity across various rendering environments, as PDF 1.7 forms the foundational structure for most modern PDF workflows.[1]
Starting with version 7.1, released in 2017, iText incorporates support for ISO 32000-2:2020 (PDF 2.0), which extends PDF capabilities with features like embedded files for associating supplementary data, 3D annotations for interactive models, and expanded color spaces including enhanced ICC profiles for precise color management.[61][62] These enhancements allow developers to produce more versatile documents, such as those with multimedia integrations or accurate color reproduction, while maintaining backward compatibility with PDF 1.7.[63]
For long-term preservation, iText adheres to the PDF/A family of standards, including PDF/A-1 (ISO 19005-1:2005) based on PDF 1.4 for basic visual fidelity, PDF/A-2 (ISO 19005-2:2011) extending to PDF 1.7 with support for transparency and digital signatures, PDF/A-3 (ISO 19005-3:2012) permitting non-PDF attachments like spreadsheets within a PDF container, and PDF/A-4 (ISO 19005-4:2020) based on PDF 2.0, which adds support for advanced features such as digital signatures, 3D annotations, and page-level output intents while enforcing self-contained documents.[64][65] These standards enforce self-contained documents with embedded fonts, standardized metadata, and restrictions on features like JavaScript or encryption that could hinder future accessibility, ensuring reliable archiving for legal and archival purposes.[66]
iText also supports accessibility standards through PDF/UA-1 (ISO 14289-1:2014), introduced in 2013 for tagged PDF structures compatible with screen readers, and PDF/UA-2 (ISO 14289-2:2024), available since version 8.0.3 in early 2024, which builds on PDF 2.0 for advanced Unicode handling and semantic tagging.[67] These implementations facilitate compliance with regulations like the European Accessibility Act by enabling logical document structures that assistive technologies can interpret effectively.[68]
To verify compliance, iText includes built-in conformance checking mechanisms, such as the PdfConformance class introduced in version 9.2, which validates output against PDF/A and PDF/UA profiles during document creation, flagging deviations like missing metadata or invalid color spaces.[69] This integrated validation supports proactive adherence to standards without requiring external tools, though full certification may involve additional validators like veraPDF.[16]
Extensions and Specialized Standards
iText extends its core PDF 2.0 capabilities through support for several ISO technical specifications that enhance digital signatures and encryption, enabling advanced security features beyond the foundational ISO 32000-2 standard.[30] These extensions include ISO/TS 32001, which adds support for SHA-3 and SHAKE256 hash algorithms in PDF documents, allowing for more robust cryptographic hashing in signature processes.[70] iText version 8 and later provides full implementation of this specification, facilitating the use of these modern hash functions in digital signatures.[30]
Building on this, ISO/TS 32002 extends digital signature support in PDF 2.0 by incorporating NIST-P, Brainpool, and Edwards Curve (EdDSA) families of elliptic curves, including Ed25519 and Ed448, to address evolving cryptographic needs such as post-quantum readiness for certain algorithms.[71] iText 8+ offers comprehensive support for these enhancements, enabling the creation and validation of signatures using these advanced elliptic curve methods.[30] Similarly, iText achieves PAdES compliance across Baseline, B, T, LT, and LTV-A profiles, which align with ETSI EN 319 122 standards for advanced electronic signatures in PDF, incorporating long-term validation elements like revocation information and timestamps.[72] This support is integrated via high-level APIs for two-phase signing and LTV enabling, ensuring compatibility with regulatory requirements for verifiable electronic documents.[73]
Further advancements in iText 9, released in November 2024, introduce full support for ISO/TS 32003 and ISO/TS 32004, focusing on encryption and integrity protections.[31] ISO/TS 32003 adds AES-GCM (Galois/Counter Mode) to the Encrypt dictionary, providing authenticated encryption that combines confidentiality with integrity in a single operation.[74] ISO/TS 32004 complements this by specifying Message Authentication Code (MAC) mechanisms for encrypted PDFs, using keys derived from encryption parameters to detect tampering without requiring additional signatures.[75] These features enable comprehensive digital signature validation, including built-in APIs for checking certificate chains, revocation status, and policy compliance.[32]
In addition to security-focused extensions, iText provides partial support for niche applications through its handling of PDF forms and annotations. While not fully dedicated to variable data printing, iText's AcroForm capabilities align with aspects of ISO 16612-2 (PDF/VT-1 and PDF/VT-2), which builds on PDF/X-4 for transactional forms and dynamic content exchange in high-volume printing workflows. For multimedia, iText supports rich media annotations as defined in ISO 32000-2, including embedding of video, audio, and Flash content via the RichMediaAnnotation class, though full interoperability may depend on viewer implementations.[76]
These extensions position iText as a key tool for regulatory compliance in sectors like finance and government, particularly under the EU's eIDAS framework (Regulation 910/2014), which mandates qualified electronic signatures and trust services for cross-border transactions.[77] By integrating these ISO addenda, iText facilitates secure, long-term valid documents that meet eIDAS levels from simple to qualified, including LOTL (List of Trusted Lists) cache for certificate validation.[78] This support ensures documents remain verifiable even as cryptographic standards evolve, reducing risks in automated workflows.[79]
Ecosystem and Forks
Add-ons and Modules
iText Core provides foundational functionality for PDF creation and manipulation, while its add-ons extend capabilities for specialized tasks such as advanced rendering, data extraction, and form handling.[1] These modules are designed to integrate seamlessly with the core library, enabling developers to address complex requirements like multilingual support or automated data processing without rebuilding from scratch.[80]
Key add-ons include pdfHTML, which converts HTML and CSS into standards-compliant, accessible PDFs, supporting features like PDF/UA tagging for structured documents such as reports and invoices.[81] pdfCalligraph enhances typography by handling complex scripts (e.g., Arabic, Hebrew, Devanagari) and right-to-left (RTL) text rendering, including OpenType features like kerning and ligatures for accurate global language support.[82] pdf2Data facilitates template-based data extraction from structured PDFs, using rules for positions, fonts, and patterns to pull information like invoice details into reusable formats.[83]
Additional modules cover niche functionalities: pdfOCR integrates optical character recognition to convert scanned images or PDFs into searchable PDF/A-3u files, supporting AI-based engines like docTR for multilingual batch processing.[84] pdfXFA flattens dynamic XFA forms into static, signable PDFs compliant with PDF 1.7 standards, suitable for securing archival documents.[85] pdfDebug offers real-time inspection tools for PDF structure, allowing developers to visualize content streams, set breakpoints, and debug issues like resource mismatches during creation.[86]
Under the AGPLv3 open-source license, iText Core and select add-ons (e.g., pdfHTML, pdfCalligraph) are available at no cost, with source code accessible for community use, though compliance requires offering modifications publicly.[37] Commercial licenses bundle all add-ons, removing AGPL restrictions for proprietary applications and providing enterprise support.[41]
Integration typically occurs via Maven for Java projects; for instance, pdfHTML uses the dependency com.itextpdf:html2pdf to enable HTML-to-PDF conversion in workflows. Similar dependencies exist for other modules, such as com.itextpdf:pdfcalligraph for advanced typography.[82]
Use cases for these add-ons include converting web content to accessible PDFs with pdfHTML for regulatory compliance, processing multilingual documents via pdfCalligraph to support global invoicing, and automating template filling with pdf2Data for efficient data workflows in finance and administration.[81][82][83]
Notable Forks
One of the most prominent forks of iText is OpenPDF, which originated as a community-driven project to preserve the original open-source licensing model after iText transitioned to the AGPL license with version 5.0. Forked in October 2016 from iText version 4.2.0 (specifically the SVN tag 4.2.0), OpenPDF maintains the dual LGPL-2.1+ and MPL-2.0 licenses, allowing greater flexibility for integration into proprietary software without the copyleft obligations of AGPL. This fork emphasizes long-term stability through ongoing bug fixes and minor enhancements, while avoiding the more restrictive licensing that prompted its creation.[87]
The primary motivation for OpenPDF's development was the desire among developers to continue using iText's core functionality in closed-source projects without needing to disclose source code or purchase commercial licenses, as the AGPL change in iText 5 imposed stricter requirements for network-deployed applications. As a drop-in replacement for iText 4 and earlier versions, OpenPDF retains compatibility with legacy workflows, supporting PDF 1.7 features comprehensively while evolving to include PDF 2.0 (ISO 32000-2:2020) compliance in recent releases. Key differences from mainline iText include the absence of advanced post-2016 features like PDF/A-3 enhancements or certain PDF 2.0 extensions beyond core support, but it compensates with dedicated modules such as OpenPDF-html for HTML-to-PDF conversion and OpenPDF-renderer for PDF viewing, both under LGPL. The project remains actively maintained on GitHub under the LibrePDF organization, welcoming contributions aligned with its permissive licensing.[87][88]
Beyond OpenPDF, several minor forks have emerged, particularly derivatives of iTextSharp—the .NET port of iText—which saw reduced official maintenance following the AGPL shift. Examples include community efforts like the itext2 fork of iText 2.1.7, aimed at preserving LGPL/MPL compatibility for .NET environments, though these are less actively developed and focus on basic PDF manipulation without significant updates. These forks serve niche needs in legacy .NET projects seeking to avoid commercial dependencies but lack the breadth and ongoing support of OpenPDF.[89]
As of August 2025, OpenPDF reached version 3.0.0, incorporating performance improvements like batch utilities for high-throughput PDF generation using Java 21 virtual threads, and it continues to be adopted in open-source and proprietary projects as a cost-effective alternative to licensed iText versions.[88]
Recognition
Awards and Accolades
iText has received multiple recognitions for its innovations in PDF technology, particularly in the areas of document creation and security solutions tailored for small to medium-sized enterprises. In the Stevie Awards, iText earned Bronze medals for Most Innovative Company of the Year in the under-100-employees category in 2015, 2019, and 2021, highlighting its advancements in open-source PDF libraries that enable efficient document manipulation and compliance.[90][91] Additionally, in 2017, iText was awarded a Silver Stevie in the International Business Awards for Most Innovative Tech Company, acknowledging its contributions to scalable PDF processing tools.[92] In 2022, iText received a Bronze Stevie Award for Achievement in Customer Satisfaction in the American Business Awards.[93]
The company also secured accolades in growth and project excellence. In 2021, iText won the Document Manager Awards for Project of the Year in the Public Sector for its integration of secure digital signing with Singapore's Singpass system via Dedoco, demonstrating practical application of PDF security in government services; it was also a runner-up in Low-Code Document Generation.[94] In 2022, iText won the Document Manager Awards for Project of the Year in the Private Sector.[95] Earlier, iText was recognized as Belgium's fastest-growing technology company by Deloitte in 2014, reflecting rapid expansion driven by its core PDF library adoption.[96] In 2016, it ranked 1308th on the Inc. 5000 Europe list of fastest-growing private companies and fifth among Belgian firms, underscoring sustained revenue growth from software innovations.[97]
Leadership recognition further bolsters iText's profile. In 2016, founder and then-CEO Bruno Lowagie was nominated for Belgian IT Person of the Year by DataNews, selected among 50 candidates for his role in pioneering open-source PDF development. Following its acquisition by Apryse (formerly PDFTron) in 2022, iText's technologies have gained broader global visibility through integrated offerings, amplifying its industry stature.
Industry Adoption
iText has seen widespread adoption across various industries due to its robust PDF generation and manipulation capabilities. It is integrated into popular open-source tools such as JasperReports, where it serves as the primary engine for exporting reports to PDF format, enabling dynamic document creation in business intelligence applications.[98] Similarly, iText is utilized in enterprise content management systems like Alfresco for PDF processing tasks, including rendition generation and document enhancement through add-ons like the Alfresco PDF Toolkit.[99] In the finance sector, enterprises leverage iText for secure reporting, such as generating compliant digital statements with encryption and digital signatures to meet regulatory requirements. Government agencies employ it for e-invoicing solutions, supporting standards like ZUGFeRD for hybrid PDF/XML invoices that facilitate automated processing in public procurement and administrative workflows. The publishing industry benefits from iText's support for e-book formatting and high-fidelity PDF output, ensuring compatibility with archival standards.[100]
Notable case studies highlight iText's practical impact. In the EU public sector, iText powered projects focused on creating accessible PDFs compliant with PDF/UA standards, earning the 2021 Document Manager Award for "Project of the Year: Public Sector" for enabling inclusive document workflows in governmental operations. In banking, Green Dot Bank uses iText Core and pdfHTML to produce millions of on-demand, customized digital statements for online banking, handling high-volume processing with scalability and security features like compliant digital signatures.[94][101]
The iText community reflects its broad appeal, with millions of users worldwide, including both open-source and commercial developers, and approximately 15,000 daily downloads of its libraries. Its GitHub repositories, such as itext-java, maintain active engagement with contributions and examples that support ongoing development. Forums and knowledge bases, including Stack Overflow discussions under the iText tag, demonstrate a vibrant ecosystem where developers share solutions for PDF challenges.[102][103]
iText has influenced the evolution of the PDF ecosystem by implementing and promoting ISO standards, such as PDF/A for archiving and PDF/UA for accessibility, and participating in the PDF Association to advance compliance and interoperability. Its tools are cited in discussions around PDF extensions, contributing to modern features like enhanced digital signing in PDF 2.0. Following its acquisition by Apryse in 2022, iText's reach has expanded to millions of developers through bundled solutions in Apryse's SDK offerings, accelerating adoption in enterprise software development.[104][5]