Nutrient .NET SDK vs. iText Core: Complete comparison for .NET developers

Table of contents

    Nutrient .NET SDK vs. iText Core: Complete comparison for .NET developers
    TL;DR

    iText Core (v9.x, by Apryse): Build PDF-centric applications with granular control. Community resources and commercial support are available. Purchase add-ons separately as your needs grow. AGPLv3 is available for open source projects.

    Nutrient .NET SDK: All document processing features are included. Process scanned invoices, extract structured data, and handle any document format without additional licenses. A single SDK reduces development time and vendor management.

    Choose iText for PDF generation with community support. Choose Nutrient for faster deployment and lower technical debt when handling mixed document types.

    Try Nutrient free →

    Key differences at a glance

    Time to market

    iText Core: Assemble multiple tools for complete workflows

    Nutrient: Complete solution with built-in OCR, extraction, and conversion

    Developer productivity

    iText Core: Write custom parsing logic for data extraction

    Nutrient: Automated extraction from invoices, forms, and tables without custom parsing

    Maintenance burden

    iText Core: Manage separate vendors for add-ons

    Nutrient: Single SDK, license, and vendor — no version conflicts or integration issues

    Direct feature comparison

    FeatureNutrient .NET SDKiText Core
    PDF generation✅ Full support✅ Primary focus (high-level and low-level APIs)
    HTML-to-PDF rendering✅ Chrome-based rendering with full CSS/media support⚠️ Requires pdfHTML add-on (separate purchase)
    PDF editing✅ Add/remove content, annotations, stamps, watermarks✅ Merge, split, stamp, watermark; add content via PdfCanvas (removing/redacting content requires pdfSweep add-on)
    Text extractionAdvanced extraction✅ Basic text extraction (built in)
    OCR✅ Built in, 125+ languages, advanced pre/post-processing⚠️ Requires pdfOCR add-on (separate purchase, Tesseract/ONNX-based)
    Form processing✅ Create, fill, flatten✅ AcroForm (full support); ⚠️ XFA (fill/extract built in, flattening requires pdfXFA add-on)
    Digital signatures✅ Certificates, timestamps✅ Full PAdES support, FIPS compliance, SHA-3, ECC (elliptic-curve cryptography)
    Document operations✅ Merge, split✅ Merge, split, reorder
    ML-powered data extraction✅ Key-value pairs, tables, OMR❌ Not supported
    Format support✅ 100+ formats⚠️ PDF only (no Office conversion add-on available for .NET)
    PDF/A compliance✅ PDF/A-1 through PDF/A-4✅ PDF/A-1a/b, 2a/b/u, 3a/b/u, 4e/f
    PDF/UA accessibility✅ Full compliance, auto-tagging, and conversion✅ PDF/UA-1 (full support)
    Barcode generation/reading✅ Generate and read 1D/2D✅ Add barcodes (generation), no built-in reading
    Image preprocessing✅ Deskew, denoise, and remove lines/punch holes⚠️ Via pdfOCR add-on
    Document scanning✅ TWAIN/WIA scanner support❌ Not supported
    OMR (optical mark recognition)✅ Extract checkboxes, bubbles❌ Not supported
    MRZ extraction✅ Passports, IDs, visas, driver’s licenses❌ Not supported
    Hyper-compression✅ MRC compression for scanned documents❌ Not supported
    Desktop PDF viewer✅ WinForms/WPF viewer with search, bookmarks❌ Not applicable
    Cross-platform✅ Windows, Linux, macOS (.NET 6/7/8, Framework 4.6.2)✅ .NET Standard 2.0+, .NET Core, .NET 5+
    Large document handling✅ Optimized for large files✅ Multi-gigabyte files, thousands of pages
    Deployment footprintLarger binary (native components for OCR/rendering, modular loading)Lightweight library (~few MB core), modular add-ons as needed
    Community and supportDirect commercial support with SLA, comprehensive documentationOpen source community (StackOverflow, GitHub), third-party examples, commercial support available
    LicensingCommercialDual license (AGPLv3 or commercial)
    PricingContact for quoteVolume-based commercial pricing (contact for quote)

    Advanced AI extraction: For LLM-powered natural language extraction and document classification, Nutrient offers the AI Document Processing SDK as a separate product with its own license. This adds advanced capabilities like intelligent invoice processing with machine learning (ML) templates and confidence scores.

    Nutrient vs. iText Core: Code example comparisons

    The following examples show how common PDF operations differ between iText Core and Nutrient .NET SDK, from basic document creation to OCR and merging.

    Example 1: Generate PDFs from scratch

    iText Core approach:

    using iText.Kernel.Pdf;
    using iText.Layout;
    using iText.Layout.Element;
    // Create a new PDF document.
    PdfWriter writer = new PdfWriter("output.pdf");
    PdfDocument pdf = new PdfDocument(writer);
    Document document = new Document(pdf);
    // Add a paragraph to the document.
    Paragraph para = new Paragraph("Hello World! This is a PDF created with iText 9.")
    .SetFontSize(14);
    document.Add(para);
    // Close the document.
    document.Close();

    iText Core uses a high-level API with Document, Paragraph, and layout elements. You can control PDF structure through both convenience methods and low-level manipulation.

    Nutrient .NET SDK approach:

    using GdPicturePDF gdpicturePDF = new GdPicturePDF();
    // Set the origin to the top-left corner of the page.
    gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
    // Create a new page with the Letter size.
    gdpicturePDF.NewPage(PdfPageSizes.PdfPageSizeLetter);
    // Add a font and select it.
    gdpicturePDF.AddStandardFont(PdfStandardFont.PdfStandardFontHelvetica);
    gdpicturePDF.SetTextSize(14);
    // Set the text color to black.
    gdpicturePDF.SetFillColor(0, 0, 0);
    // Draw text on the page.
    gdpicturePDF.DrawText(72, 72, "Hello World! This is a PDF created with Nutrient .NET SDK.");
    // Save the document.
    gdpicturePDF.SaveToFile(@"C:\temp\output.pdf");

    Nutrient creates the PDF with GdPicturePDF, adds a page with NewPage(), selects a font, and draws text with DrawText(). For richer layouts, DrawTextBox() supports alignment and wrapping within a rectangle.

    Example 2: Extract text from an existing PDF

    iText Core approach:

    using iText.Kernel.Pdf;
    using iText.Kernel.Pdf.Canvas.Parser;
    using iText.Kernel.Pdf.Canvas.Parser.Listener;
    // Open an existing PDF document.
    PdfDocument pdfDoc = new PdfDocument(new PdfReader("document.pdf"));
    // Extract text from all pages.
    StringBuilder text = new StringBuilder();
    for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++)
    {
    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
    string pageText = PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(i), strategy);
    text.Append(pageText);
    }
    // Close the document.
    pdfDoc.Close();
    // Save extracted text.
    File.WriteAllText("extracted.txt", text.ToString());

    iText Core provides multiple extraction strategies: SimpleTextExtractionStrategy extracts text in reading order, while LocationTextExtractionStrategy preserves spatial positioning.

    Nutrient .NET SDK approach:

    using GdPicturePDF gdpicturePDF = new GdPicturePDF();
    // Load the source document.
    gdpicturePDF.LoadFromFile("input.pdf");
    // Optional: Improve word boundary detection in structured documents.
    gdpicturePDF.SetTextExtractionOptions(TextExtractionOptions.PreserveLayout);
    // Extract text from all pages.
    StringBuilder text = new StringBuilder();
    for (int i = 1; i <= gdpicturePDF.GetPageCount(); i++)
    {
    gdpicturePDF.SelectPage(i);
    text.Append(gdpicturePDF.GetPageText());
    }
    // Save the extracted text to a file.
    File.WriteAllText("ExtractedText.txt", text.ToString());

    Nutrient loads the PDF with LoadFromFile(). It then iterates through pages with SelectPage() and extracts text using GetPageText(). SetTextExtractionOptions(PreserveLayout) maintains the original spatial positioning of text, similar to iText’s LocationTextExtractionStrategy.

    Example 3: Perform OCR on scanned PDFs

    iText Core approach:

    using iText.Kernel.Pdf;
    using iText.Pdfocr;
    using iText.Pdfocr.Tesseract4;
    using System.Collections.Generic;
    using System.IO;
    // Note: pdfOCR is a separate add-on from iText.
    // Configure OCR engine with Tesseract.
    var ocrEngineProperties = new Tesseract4OcrEngineProperties();
    ocrEngineProperties.SetPathToTessData(new FileInfo("path/to/tessdata"));
    var tesseractEngine = new Tesseract4LibOcrEngine(ocrEngineProperties);
    var ocrPdfCreator = new OcrPdfCreator(tesseractEngine);
    // Perform OCR on image file and create searchable PDF.
    var imageFiles = new List<FileInfo> { new FileInfo("scanned.jpg") };
    using (var writer = new PdfWriter("output_ocr.pdf"))
    {
    ocrPdfCreator.CreatePdf(imageFiles, writer).Close();
    }

    This example uses iText’s pdfOCR add-on (separate purchase) with the Tesseract 4 engine. It requires a path to Tesseract language data and supports ONNX-based ML models for Latin-based languages.

    Nutrient .NET SDK approach:

    using GdPicturePDF gdpicturePDF = new GdPicturePDF();
    // Load the source document.
    gdpicturePDF.LoadFromFile("input.pdf");
    // Run the OCR process on all pages with maximum multithreading support.
    gdpicturePDF.OcrPages("*", 0, "eng", "", "", 300);
    // Save the result in a PDF document.
    gdpicturePDF.SaveToFile(@"C:\temp\output.pdf");

    Nutrient loads scanned PDFs and runs OCR on all pages using OcrPages() with image preprocessing. No additional products are needed.

    Example 4: Merge multiple PDFs

    iText Core approach:

    using iText.Kernel.Pdf;
    using iText.Kernel.Utils;
    // Create output document.
    PdfDocument pdfDoc = new PdfDocument(new PdfWriter("merged.pdf"));
    // Merge utility.
    PdfMerger merger = new PdfMerger(pdfDoc);
    // Load and merge first document.
    PdfDocument firstDoc = new PdfDocument(new PdfReader("document1.pdf"));
    merger.Merge(firstDoc, 1, firstDoc.GetNumberOfPages());
    firstDoc.Close();
    // Load and merge second document.
    PdfDocument secondDoc = new PdfDocument(new PdfReader("document2.pdf"));
    merger.Merge(secondDoc, 1, secondDoc.GetNumberOfPages());
    secondDoc.Close();
    // Close the merged document.
    pdfDoc.Close();

    iText Core uses PdfMerger to combine PDFs. You can merge specific page ranges from each source document.

    Nutrient .NET SDK approach:

    // Option 1: Merge with full control over document-level options.
    using GdPicturePDF firstDoc = new GdPicturePDF();
    firstDoc.LoadFromFile(@"C:\temp\document1.pdf");
    using GdPicturePDF secondDoc = new GdPicturePDF();
    secondDoc.LoadFromFile(@"C:\temp\document2.pdf");
    GdPicturePDFFactory.MergeDocuments(new[] { firstDoc, secondDoc }, out GdPicturePDF mergedDoc);
    using (mergedDoc)
    {
    mergedDoc.SaveToFile(@"C:\temp\merged.pdf");
    }
    // Option 2: Merge PDF documents by file path.
    using GdPicturePDF gdpicturePDF = new GdPicturePDF();
    string[] sources = new[] { @"C:\temp\document1.pdf", @"C:\temp\document2.pdf" };
    gdpicturePDF.MergeDocuments(sources, @"C:\temp\merged.pdf");
    // Option 3: Combine mixed file types (PDFs, images, Office documents) into a single PDF.
    using GdPictureDocumentConverter gdpictureConverter = new GdPictureDocumentConverter();
    IEnumerable<string> source = new List<string>(new string[] { @"C:\temp\source1.jpg", @"C:\temp\source2.xlsx" });
    gdpictureConverter.CombineToPDF(source, @"C:\temp\output.pdf", PdfConformance.PDF1_5);

    Nutrient’s GdPicturePDFFactory.MergeDocuments() works with loaded documents and supports merging options. For a simpler approach, MergeDocuments() on GdPicturePDF takes an array of file paths and a destination. Nutrient can also combine mixed file types — images, Office documents, and CAD files — into a single PDF using CombineToPDF().

    Pricing comparison

    Here’s how iText Core and Nutrient .NET SDK compare on licensing, add-on costs, and total cost of ownership.

    iText Core pricing

    Dual licensing model:

    • AGPLv3 free for open source (must publish source code)
    • Commercial license: removes AGPL requirements, includes support
    • Volume-based pricing (contact for quote)

    Add-on costs:

    iText Core is the base product. Additional capabilities require separate add-ons:

    • pdfHTML — HTML/CSS-to-PDF conversion (separate purchase)
    • pdfOCR — OCR functionality (separate purchase)
    • pdfXFA — XFA form flattening and dynamic form handling (separate purchase)
    • pdfCalligraph — Global fonts and writing systems (separate purchase)
    • pdfSweep — Advanced redaction (separate purchase)
    • pdfOptimizer — Document optimization (separate purchase)

    Note: iText doesn’t offer a native Office document conversion add-on for .NET. .NET developers would need alternative solutions for Office-to-PDF conversion.

    Nutrient .NET SDK pricing

    Commercial licensing:

    • Contact Sales for a custom quote
    • Enterprise support included
    • No per-developer or per-project restrictions
    • Flexible licensing models available
    • All features included in base license (OCR, data extraction, and multi-format support)
    • Optional AI Document Processing SDK available for advanced LLM-powered extraction

    Nutrient’s single license reduces procurement complexity and integration issues between components.

    Total cost of ownership comparison

    FactoriText CoreNutrient .NET SDK
    Initial costVolume-based (contact for quote)Contact for pricing
    Additional libraries neededpdfOCR, pdfHTML add-ons (Office conversion not available for .NET)All-in-one solution
    SupportCommercial support included with licenseEnterprise support included
    UpdatesIncluded with subscriptionCommercial updates and patches
    CompliancePDF/A, PDF/UA supportedComplete (PDF/A, PDF/UA, signatures)
    TrainingDocumentation and community resourcesComprehensive documentation
    MaintenanceVendor-supportedVendor-supported

    When iText Core costs less:

    • Your application is open source (AGPLv3 license)
    • You only need PDF creation and manipulation (no OCR or format conversion)
    • Low-to-moderate PDF processing volume
    • You don’t require add-ons

    When Nutrient delivers stronger ROI:

    • Faster delivery — complete document features in days instead of months
    • No custom parsing — built-in data extraction for common document types
    • Handle multiple formats — process any document type without additional tools
    • Enterprise support with SLAs and simplified vendor management

    Migration guide: iText Core to Nutrient

    Migrating from iText Core to Nutrient requires API adaptation but adds document processing capabilities beyond PDF. The steps below cover installation, scope assessment, API mapping, and expanding into Nutrient’s broader feature set.

    Step 1: Install Nutrient .NET SDK

    Install via NuGet and configure licensing:

    Terminal window
    # Add the package (.NET 6.0 or higher)
    dotnet add package GdPicture.API
    # For .NET Framework 4.6.2:
    dotnet add package GdPicture
    using GdPicture14;
    LicenseManager licenseManager = new LicenseManager();
    licenseManager.RegisterKEY(""); // Empty string for trial mode

    Step 2: Identify migration scope

    Direct replacement: Map iText Core PDF operations to Nutrient equivalents

    Feature expansion: Use Nutrient’s OCR, extraction, and multi-format capabilities beyond PDF

    Hybrid approach: Use iText Core for specific PDF operations, Nutrient for document processing

    Step 3: API mapping

    Common iText Core patterns and Nutrient equivalents:

    iText Core patternNutrient equivalent
    PdfDocument + DocumentGdPicturePDF
    PdfReader / PdfWriterLoadFromFile() / SaveToFile()
    PdfTextExtractor.GetTextFromPage()SelectPage() + GetPageText()
    PdfMerger.Merge()GdPictureDocumentConverter.CombineToPDF()
    PdfSigner.SignDetached()SetSignatureCertificateFromP12() + ApplySignature()
    new Paragraph().Add()DrawText() / DrawTextBox()

    Step 4: Add document processing features

    After migrating core PDF functionality, add Nutrient’s document processing features:

    • OCRExample 3 shows built-in OCR without separate add-ons
    • Data extractionExtract data from forms, tables, and key-value pairs
    • Multi-formatConvert documents to PDF (Office, images, and CAD)
    • Compliance — Full PDF/A support for archival standards

    Migration effort estimate

    Project complexityEstimated effortKey challenges
    Simple PDF operations (< 10 APIs)1–2 weeksAPI mapping, testing
    Medium complexity (10–50 APIs)3–8 weeksRefactoring, feature parity
    Large application (50+ APIs)2–4 monthsArchitecture changes, testing

    Plan for API differences. iText Core uses high-level Document and Layout APIs. Nutrient uses method-based APIs with explicit page selection. Code patterns differ but functionality is equivalent.

    Use case recommendations

    Decision factorChoose iText Core when…Choose Nutrient when…
    Document typesUsers work only with digital PDFsUsers scan documents, extract data, or process 100+ file types
    Development approachTeam builds custom PDF workflows and extraction logicShip faster with prebuilt OCR, extraction, and format conversion
    Total costInitial license cost is the priorityMinimize TCO with one SDK, one vendor, no integration overhead
    Compliance standardsPDF/A and PDF/UA standards are requirementsMeet archival and accessibility standards across diverse document types
    Support and licensingOpen source project (AGPLv3) or prefer modular pricingNeed SLA-backed support and predictable all-in-one licensing

    Community vs. enterprise support: iText offers an open source community with third-party examples and StackOverflow discussions, plus commercial support options. Nutrient provides commercial support with SLAs and direct vendor communication.

    Hybrid approach: Some teams use both libraries — iText Core for PDF generation and standards compliance, and Nutrient for OCR, extraction, and multi-format conversion. This requires managing two SDKs and licenses.

    Conclusion

    The decision comes down to scope.

    If your application only generates or manipulates digital PDFs, iText Core delivers granular control with flexible licensing. For open source projects, AGPLv3 makes it accessible. For commercial apps, modular pricing lets you add capabilities as needed.

    If your application processes scanned documents, extracts data from forms, or handles mixed file types, Nutrient eliminates the integration work. Teams ship production-ready document processing without building OCR pipelines, extraction parsers, or format converters.

    Bottom line: iText Core is a PDF library. Nutrient is a document processing platform. Choose based on what you’re building.

    Try Nutrient free or contact Sales for a custom ROI analysis.

    FAQ

    Which .NET PDF library is better for scanned documents and data extraction?

    Nutrient includes OCR, data extraction, and image preprocessing built in, so teams can deploy document processing features faster. iText Core requires purchasing the pdfOCR add-on and building custom extraction logic.

    Can I start with iText Core and add Nutrient .NET SDK later?

    Yes, but migration costs 2–3x more development time than choosing Nutrient initially. You’ll rewrite extraction logic, manage two vendors, and coordinate versions. If scanned documents or data extraction are planned, starting with Nutrient avoids rewrites.

    What if I have an open source .NET project?

    iText Core offers AGPLv3 licensing for open source projects that publish source code. Applications must share code under AGPL terms. Nutrient is commercially licensed only. For open source projects, use iText Core. For commercial applications, compare total cost, including add-ons.

    How do total costs compare for .NET PDF SDKs with OCR and Office conversion?

    Consider total cost of ownership, not just licenses. iText Core requires the pdfOCR add-on, custom Office conversion, extraction parsers (2–3 months of development), and multiple upgrade cycles. Nutrient’s single license reduces procurement and integration costs. Teams can save up to 40–60 percent when including development time and maintenance.

    What AI capabilities does Nutrient .NET SDK offer?

    Nutrient .NET SDK includes ML-powered extraction for key-value pairs, tables, and form fields. For LLM-based natural language extraction and document classification, the AI Document Processing SDK is available separately.

    Which C# PDF library is easier to learn for .NET developers?

    iText Core uses object-oriented patterns (Document, Paragraph, PdfSigner) familiar to .NET developers, and documentation and community resources are available. Nutrient uses method-based APIs with explicit state management. iText Core has a shorter learning curve for PDF-only work, while Nutrient requires more setup but provides broader functionality. For PDF-only work, choose iText Core. For document processing (OCR, extraction, and multi-format), Nutrient’s single API means you avoid learning multiple libraries.

    Does iText Core support .NET Core and modern .NET?

    Yes. iText Core supports .NET Standard 2.0+, .NET Core, .NET 5+, and .NET Framework, and it’s actively maintained for modern .NET development. Nutrient supports .NET 6/7/8 and .NET Framework 4.6.2+.

    Hulya Masharipov

    Hulya Masharipov

    Technical Writer

    Hulya is a frontend web developer and technical writer who enjoys creating responsive, scalable, and maintainable web experiences. She’s passionate about open source, web accessibility, cybersecurity privacy, and blockchain.

    Explore related topics

    Try for free Ready to get started?