COMPARISON

Iron Suite vs Foxit PDF SDK

Quote-only enterprise procurement versus self-serve public-price perpetual: Foxit PDF SDK for .NET and Iron Suite sit on opposite sides of that line. Foxit sells its developer SDK quote-only, with no published USD pricing, and the modular add-on structure means OCR, Conversion, Redaction, and Compare are each separately licensed line items activated on top of the core. Iron Suite ships at a published perpetual price from $2,998 per developer, covering all ten Iron products under one license, with royalty-free deployment for the licensed seats and a separate Redistribution Add-On for SaaS or OEM scenarios.

This article leads with what a procurement-led decision actually hangs on: how each suite is priced, what the license actually covers, and what add-ons need separate negotiation. The capability-by-capability developer detail follows for the engineers integrating it.

At-a-Glance Comparison

DimensionFoxit PDF SDKIron Suite
Pricing positioningQuote-only for developer SDK; PDF Compressor server product ~$375/yr for 12,000 pagesLite $2,998 / Plus $4,498 / Professional $8,998 / Unlimited $17,998 (Enterprise custom). All 10 products for the price of 2, save 75%
License modelCommercial quote-based per-developer + per-deployment royalty; modular add-on licensingPerpetual per-developer; royalty-free base + Redistribution Add-On for SaaS/OEM
Components in bundleCore PDF SDK + Conversion, OCR, Redaction, Compare add-ons; PDF Compressor sold separately10 products (PDF, Word, Excel, PPT, OCR, Barcode, QR, Print, ZIP, WebScraper)
Format/capability coveragePDF-centric; Office handled via Conversion add-on; no native Word/Excel/PPT manipulation, no barcode/QR, no web scrapingPDF + native Word + Excel + PPT + OCR + Barcode + QR + Print + ZIP + Web scraping
Cross-platform / cloudWindows primary; Linux/macOS via Core SDK; iOS/Android/MAUI/Web as separate SDK familiesWindows, Linux, macOS, Docker, Azure, AWS Lambda
.NET runtime support.NET Framework 4.0, .NET Core 2.1, .NET 6.0; .NET 8+ via Core SDK edition.NET Framework 4.6.2+, .NET Core, .NET 6/7/8/9/10
Target marketEnterprise/ISV PDF stacks needing native-engine throughput.NET developers and ISVs wanting a single standalone document + recognition bundle
VendorFoxit Software Inc.Iron Software

Foxit PDF SDK is quote-only commercial procurement, structured as per-developer seats plus per-deployment royalty plus separately-licensed add-ons (Conversion, OCR, Redaction, Compare). Iron Suite Lite is $2,998 per developer for the full ten-product bundle, perpetual and royalty-free for the licensed seats. The decision tilts on whether Foxit's depth of PDF spec coverage and long ISV/OEM track record justify the quote-and-add-on procurement path against a flat published price covering a broader format and recognition surface.

Pricing and Licensing

Foxit PDF SDK uses a quote-based commercial model. The developer SDK has no published USD price tiers; Foxit's own knowledge base confirms that pricing is negotiated through sales, with the model typically structured as a per-developer seat fee plus a per-deployment or runtime royalty. The modular add-on structure means OCR, Conversion, Redaction, and Compare are each separately licensed line items rather than included in the base SDK. The adjacent server product PDF Compressor, sold separately from the developer SDK, starts at approximately $375/year for 12,000 pages of processing. Exact developer-tier pricing is unverified beyond "contact sales."

Iron Suite is sold as a perpetual per-developer license from $2,998, packaging all ten components under a single purchase. The marketing position, "all 10 products for the price of 2, save 75%", reflects the bundle discount versus buying Iron's individual products separately. The base license is royalty-free for the licensed seats; SaaS, OEM, and distributed-redistribution scenarios beyond the base license are covered by a separate Redistribution Add-On.

Foxit's procurement is layered: per-developer seat fee plus per-deployment royalty plus separately-licensed add-on activations for OCR, Conversion, Redaction, and Compare, all reached through a sales conversation. Iron Suite's procurement is self-serve at a published USD price per tier, perpetual, with the Redistribution Add-On as the only separately-priced item for SaaS and OEM redistribution beyond the base license.

What is Foxit PDF SDK for .NET

Foxit PDF SDK for .NET is Foxit Software's developer toolkit for embedding PDF capabilities into .NET applications. The core SDK ships as Foxit.SDK.Dotnet on NuGet; version 11.1.0.1 (April 2026) targets .NET Framework 4.0, .NET Core 2.1, and .NET 6.0, with .NET 8+ covered through the .NET Core SDK edition. The product is positioned against Adobe PDF Library and Apryse (formerly PDFTron) for enterprise and ISV PDF workloads; it competes on native-engine raw throughput and depth of PDF specification coverage rather than on developer ergonomics or bundle breadth.

The SDK is modular: the core handles viewing, rendering, editing, annotation, signing, and forms, while specialized capabilities are licensed as separately activated add-ons.

Bundled components and add-ons:

  • Core PDF SDK: view, render, edit, annotate, sign, fill forms
  • Conversion add-on: Office (Word, Excel, PowerPoint) ↔ PDF
  • OCR add-on: text recognition from raster PDFs and images
  • Redaction add-on: production-grade text/area removal
  • Compare add-on: structural and visual PDF comparison
  • PDF Compressor: separate server product (sold separately from the SDK)

What is Iron Suite

Iron Suite is Iron Software's ten-product .NET bundle with IronPDF at the centre. Any team whose primary requirement sits in PDF generation, signing, redaction, or rasterization starts at IronPDF and inherits the rest of the bundle under the same license. Sold as a single perpetual per-developer license at five tier levels (Lite, Plus, Professional, Unlimited, Enterprise) from $2,998. Royalty-free for the licensed seats; SaaS and OEM redistribution covered by a separate Redistribution Add-On.

The ten components, grouped by relevance to a PDF-led workflow:

  • IronPDF (PDF anchor): HTML-to-PDF and URL-to-PDF rendering with bundled Chromium; native merge and split via PdfDocument.Merge; true text redaction via RedactTextOnAllPages with regex; PKCS#12, HSM (PKCS#11), TSA timestamp, and multi-party signing aligned to eIDAS and ESIGN; AES encryption and granular permissions; PDF/A-1 through PDF/A-4 (4E/4F included); PDF/UA-1 and PDF/UA-2; AcroForm fill and flattening; complete font management (custom embedding, web-font and TrueType Collection support); RasterizeToImageFiles to PNG/JPEG/TIFF with DPI control; CompressAndSaveAs and SaveAsLinearized for Fast Web View; text extraction.
  • Office: IronWord (DOCX with paragraph/text-run object graph), IronXL (XLSX with formula recalc), IronPPT (PPTX creation).
  • Recognition: IronOCR (Tesseract 5, 125+ languages, handwriting at ~90% English), IronBarcode (30+ symbologies), IronQR (ML-powered reading with batch ReadPdfs).
  • Utility: IronPrint (silent and dialog printing), IronZIP (ZIP/TAR/GZIP/BZIP2 with AES), IronWebScraper (in-process scraping).

Capability Comparison

PDF Rendering

PDF rendering (turning an existing PDF document into pixels for display, thumbnailing, or downstream image-based processing) is one of Foxit's headline capabilities. Foxit's native engine renders pages multi-threaded directly to bitmaps without an external dependency on a browser engine.

// Foxit PDF SDK — render existing PDF to bitmap
using foxit;
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;

Library.Initialize(sn, key);

using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);

int width = (int)page.GetWidth();
int height = (int)page.GetHeight();
Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation());

Bitmap bitmap = new Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0);
bitmap.FillRect(0xFFFFFFFF, null);
Renderer renderer = new Renderer(bitmap, false);
renderer.StartRender(page, matrix, null);
Library.Release();
// Foxit PDF SDK — render existing PDF to bitmap
using foxit;
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;

Library.Initialize(sn, key);

using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);

int width = (int)page.GetWidth();
int height = (int)page.GetHeight();
Matrix2D matrix = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation());

Bitmap bitmap = new Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0);
bitmap.FillRect(0xFFFFFFFF, null);
Renderer renderer = new Renderer(bitmap, false);
renderer.StartRender(page, matrix, null);
Library.Release();
Imports foxit
Imports foxit.common
Imports foxit.common.fxcrt
Imports foxit.pdf

Library.Initialize(sn, key)

Using doc As New PDFDoc("input.pdf")
    doc.Load(Nothing)
    Dim page As PDFPage = doc.GetPage(0)
    page.StartParse(CInt(PDFPage.ParseFlags.e_ParsePageNormal), Nothing, False)

    Dim width As Integer = CInt(page.GetWidth())
    Dim height As Integer = CInt(page.GetHeight())
    Dim matrix As Matrix2D = page.GetDisplayMatrix(0, 0, width, height, page.GetRotation())

    Dim bitmap As New Bitmap(width, height, Bitmap.DIBFormat.e_DIBArgb, IntPtr.Zero, 0)
    bitmap.FillRect(&HFFFFFFFF, Nothing)
    Dim renderer As New Renderer(bitmap, False)
    renderer.StartRender(page, matrix, Nothing)
End Using

Library.Release()
$vbLabelText   $csharpLabel
// Iron Suite — IronPDF (HTML-to-PDF generation as the primary path)
using IronPdf;

var renderer = new ChromePdfRenderer();
string html = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
// Iron Suite — IronPDF (HTML-to-PDF generation as the primary path)
using IronPdf;

var renderer = new ChromePdfRenderer();
string html = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>";
using var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim html As String = "<h1>Invoice 2026-0428</h1><p>Total due: $1,240.00</p>"
Using pdf = renderer.RenderHtmlAsPdf(html)
    pdf.SaveAs("invoice.pdf")
End Using
$vbLabelText   $csharpLabel

Foxit's API surface reflects its native C++ origins: explicit Library.Initialize / Library.Release, manual matrix construction, bitmap allocation, and a multi-step render call. IronPDF's path is reversed; generate the PDF from HTML/CSS through a bundled Chromium engine, then operate on the resulting document. Fidelity-rendering of existing PDFs at scale is the case Foxit's native engine is engineered for — IronPDF takes a different mechanism, producing new PDFs from web-styled inputs through a bundled Chromium pipeline. IronPDF's bundled Chromium ships in a single NuGet package (IronPdf.Linux is roughly 280 MB including the full Chrome browser, with no separate Chromium install pipeline and no runtime BrowserFetcher download), which is operationally simpler than juggling Chromium-on-host or Puppeteer/Playwright runtime downloads in Linux container and AWS Lambda deployments.

PDF Editing (Page Manipulation)

Inserting, removing, and reordering pages is a routine operation in any PDF workflow, assembling reports from multiple sources, removing draft pages before publication, or building cover sheets onto an existing document.

// Foxit PDF SDK — insert / remove pages
using foxit.common;
using foxit.pdf;

Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);

PDFPage inserted = doc.InsertPage(1, 612f, 792f);
int lastIndex = doc.GetPageCount() - 1;
doc.RemovePage(lastIndex);

doc.SaveAs("edited.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
Library.Release();
// Foxit PDF SDK — insert / remove pages
using foxit.common;
using foxit.pdf;

Library.Initialize(sn, key);
using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);

PDFPage inserted = doc.InsertPage(1, 612f, 792f);
int lastIndex = doc.GetPageCount() - 1;
doc.RemovePage(lastIndex);

doc.SaveAs("edited.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
Library.Release();
Imports foxit.common
Imports foxit.pdf

Library.Initialize(sn, key)
Using doc As New PDFDoc("input.pdf")
    doc.Load(Nothing)

    Dim inserted As PDFPage = doc.InsertPage(1, 612.0F, 792.0F)
    Dim lastIndex As Integer = doc.GetPageCount() - 1
    doc.RemovePage(lastIndex)

    doc.SaveAs("edited.pdf", CInt(PDFDoc.SaveFlags.e_SaveFlagNormal))
End Using
Library.Release()
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        // Order is preserved, and metadata, bookmarks, and annotations are retained.
        string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };

        List<PdfDocument> parts = new List<PdfDocument>();
        foreach (string path in inputs)
            parts.Add(PdfDocument.FromFile(path));

        PdfDocument merged = PdfDocument.Merge(parts.ToArray());
        merged.SaveAs("contract-package.pdf");
    }
}
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/merge-or-split-pdfs/
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        // Order is preserved, and metadata, bookmarks, and annotations are retained.
        string[] inputs = { "invoice.pdf", "terms.pdf", "appendix.pdf" };

        List<PdfDocument> parts = new List<PdfDocument>();
        foreach (string path in inputs)
            parts.Add(PdfDocument.FromFile(path));

        PdfDocument merged = PdfDocument.Merge(parts.ToArray());
        merged.SaveAs("contract-package.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Module Program
    Sub Main()
        ' PdfDocument.Merge accepts an array or params list of PdfDocument objects.
        ' Order is preserved, and metadata, bookmarks, and annotations are retained.
        Dim inputs As String() = {"invoice.pdf", "terms.pdf", "appendix.pdf"}

        Dim parts As New List(Of PdfDocument)()
        For Each path As String In inputs
            parts.Add(PdfDocument.FromFile(path))
        Next

        Dim merged As PdfDocument = PdfDocument.Merge(parts.ToArray())
        merged.SaveAs("contract-package.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF exposes equivalent page-level operations through a unified PdfDocument object model: load via PdfDocument.FromFile(...), assemble via the static PdfDocument.Merge(...), page-range copy and remove, and SaveAs(...). Edits hit the PDF object model directly; the HTML round-trip only happens when creating a PDF from HTML, not during manipulation. The contrast is structural: Foxit's per-operation API exposes native-engine plumbing (explicit Initialize/Release, save-flag enums); IronPDF unifies generation and editing under a single managed object model with implicit lifecycle management via using.

Office-to-PDF Conversion

Converting Word, Excel, and PowerPoint documents to PDF without a Microsoft Office install on the server is a frequent server-side requirement. Foxit handles this through a separately licensed Conversion add-on.

// Foxit PDF SDK — Conversion add-on (Word → PDF)
using foxit.common;
using foxit.addon.conversion;

Library.Initialize(sn, key);

using var settings = new Word2PDFSettingData();
Convert.FromWord("input.docx", string.Empty, "output.pdf", settings);

Library.Release();
// Foxit PDF SDK — Conversion add-on (Word → PDF)
using foxit.common;
using foxit.addon.conversion;

Library.Initialize(sn, key);

using var settings = new Word2PDFSettingData();
Convert.FromWord("input.docx", string.Empty, "output.pdf", settings);

Library.Release();
Imports foxit.common
Imports foxit.addon.conversion

Library.Initialize(sn, key)

Using settings As New Word2PDFSettingData()
    Convert.FromWord("input.docx", String.Empty, "output.pdf", settings)
End Using

Library.Release()
$vbLabelText   $csharpLabel

Iron Suite does not ship a single dedicated DOCX-to-PDF conversion API; the same outcome is achieved by composing IronWord (for any DOCX manipulation) with IronPDF (for the PDF generation), or by feeding the source content directly through IronPDF's HTML-to-PDF path. Office-source document conversion as a primary workflow is the case Foxit's Conversion add-on is sold for, whereas Iron Suite composes IronWord plus IronPDF (or feeds source content through IronPDF's HTML-to-PDF path) for the same outcome without a separate add-on license layered onto the seat fee.

OCR

OCR, extracting machine-readable text from scanned PDFs and raster images, is one of the most common reasons teams reach for a PDF SDK beyond pure generation.

// Foxit PDF SDK — OCR add-on
using foxit.common;
using foxit.addon.ocr;

Library.Initialize(sn, key);

if (OCREngine.Initialize("./ocr_resource") != ErrorCode.e_ErrSuccess) return;

OCREngine.SetLanguages("English");
// Configure OCRCallback to consume recognized content...

OCREngine.Release();
Library.Release();
// Foxit PDF SDK — OCR add-on
using foxit.common;
using foxit.addon.ocr;

Library.Initialize(sn, key);

if (OCREngine.Initialize("./ocr_resource") != ErrorCode.e_ErrSuccess) return;

OCREngine.SetLanguages("English");
// Configure OCRCallback to consume recognized content...

OCREngine.Release();
Library.Release();
Imports foxit.common
Imports foxit.addon.ocr

Library.Initialize(sn, key)

If OCREngine.Initialize("./ocr_resource") <> ErrorCode.e_ErrSuccess Then Return

OCREngine.SetLanguages("English")
' Configure OCRCallback to consume recognized content...

OCREngine.Release()
Library.Release()
$vbLabelText   $csharpLabel
// Iron Suite — IronOCR
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();

var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Console.WriteLine($"Extracted text: {result.Text}");
// Iron Suite — IronOCR
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput("scanned-document.png");
input.Deskew();
input.DeNoise();

var result = ocr.Read(input);
Console.WriteLine($"Confidence: {result.Confidence}");
Console.WriteLine($"Extracted text: {result.Text}");
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput("scanned-document.png")
    input.Deskew()
    input.DeNoise()

    Dim result = ocr.Read(input)
    Console.WriteLine($"Confidence: {result.Confidence}")
    Console.WriteLine($"Extracted text: {result.Text}")
End Using
$vbLabelText   $csharpLabel

Foxit's OCR engine uses an explicit lifecycle (Initialize → SetLanguages → callback-based consumption → Release) with separately distributed resource files and a license key activated for the OCR module. IronOCR's API delivers the result directly with built-in preprocessing helpers (Deskew, DeNoise) and a single Read call. The trade-off mirrors the broader engine-vs-suite framing: Foxit gives more control over the OCR pipeline; IronOCR is faster to land on a working result.

Redaction

Production-grade redaction, permanently removing sensitive content from PDFs rather than overlaying black boxes that can be parsed back out, is one of the workloads Foxit anchors its enterprise pitch on. It is used in legal, healthcare, and government workflows where the redacted output must withstand forensic recovery attempts.

// Foxit PDF SDK — Redaction add-on
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using foxit.addon;
using foxit.pdf.annots;

Library.Initialize(sn, key);

using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);

Redaction redaction = new Redaction(doc);
RectFArray rects = new RectFArray();
rects.Add(new RectF(100, 100, 300, 130));
Redact redact = redaction.MarkRedactAnnot(page, rects);

if (redaction.Apply())
{
    doc.SaveAs("redacted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
}
Library.Release();
// Foxit PDF SDK — Redaction add-on
using foxit.common;
using foxit.common.fxcrt;
using foxit.pdf;
using foxit.addon;
using foxit.pdf.annots;

Library.Initialize(sn, key);

using PDFDoc doc = new PDFDoc("input.pdf");
doc.Load(null);
PDFPage page = doc.GetPage(0);
page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);

Redaction redaction = new Redaction(doc);
RectFArray rects = new RectFArray();
rects.Add(new RectF(100, 100, 300, 130));
Redact redact = redaction.MarkRedactAnnot(page, rects);

if (redaction.Apply())
{
    doc.SaveAs("redacted.pdf", (int)PDFDoc.SaveFlags.e_SaveFlagNormal);
}
Library.Release();
Imports foxit.common
Imports foxit.common.fxcrt
Imports foxit.pdf
Imports foxit.addon
Imports foxit.pdf.annots

Library.Initialize(sn, key)

Using doc As New PDFDoc("input.pdf")
    doc.Load(Nothing)
    Dim page As PDFPage = doc.GetPage(0)
    page.StartParse(CInt(PDFPage.ParseFlags.e_ParsePageNormal), Nothing, False)

    Dim redaction As New Redaction(doc)
    Dim rects As New RectFArray()
    rects.Add(New RectF(100, 100, 300, 130))
    Dim redact As Redact = redaction.MarkRedactAnnot(page, rects)

    If redaction.Apply() Then
        doc.SaveAs("redacted.pdf", CInt(PDFDoc.SaveFlags.e_SaveFlagNormal))
    End If
End Using

Library.Release()
$vbLabelText   $csharpLabel
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/redact-text/
using IronPdf;

class Program
{
    static void Main()
    {
        PdfDocument pdf = PdfDocument.FromFile("employee-record.pdf");

        // RedactTextOnAllPages performs true redaction:
        // the text is removed from the PDF structure, not just covered visually.
        pdf.RedactTextOnAllPages("Jane Doe");
        pdf.RedactTextOnAllPages("123-45-6789");
        pdf.RedactTextOnAllPages("EMP-44213");

        pdf.SaveAs("employee-record-redacted.pdf");
    }
}
// NuGet: Install-Package IronPdf
// Docs: https://ironpdf.com/how-to/redact-text/
using IronPdf;

class Program
{
    static void Main()
    {
        PdfDocument pdf = PdfDocument.FromFile("employee-record.pdf");

        // RedactTextOnAllPages performs true redaction:
        // the text is removed from the PDF structure, not just covered visually.
        pdf.RedactTextOnAllPages("Jane Doe");
        pdf.RedactTextOnAllPages("123-45-6789");
        pdf.RedactTextOnAllPages("EMP-44213");

        pdf.SaveAs("employee-record-redacted.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim pdf As PdfDocument = PdfDocument.FromFile("employee-record.pdf")

        ' RedactTextOnAllPages performs true redaction:
        ' the text is removed from the PDF structure, not just covered visually.
        pdf.RedactTextOnAllPages("Jane Doe")
        pdf.RedactTextOnAllPages("123-45-6789")
        pdf.RedactTextOnAllPages("EMP-44213")

        pdf.SaveAs("employee-record-redacted.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF supports text-level redaction via RedactTextOnAllPages (with regex pattern variants and page-specific overloads), removing the matched content from the PDF stream rather than only covering it visually. Foxit's Redaction.MarkRedactAnnot retains an area-based redaction edge: a RectF region on a page is marked and applied with redaction.Apply(), which fits workflows where the redaction target is a known visual region (signature blocks, header bars, redacted images) rather than a known string. For legal discovery and regulated-compliance workflows that combine string-based and area-based redaction in the same engine, Foxit's Redaction.MarkRedactAnnot is the API positioned for that use case — for string-driven redaction of PII, identifiers, and account numbers, IronPDF's RedactTextOnAllPages is the more direct path.

Why Choose Iron Suite for Single-Vendor PDF + OCR + Barcode Workflows

Pick Iron Suite when your .NET document workload spans PDF generation, OCR, barcode reading, and Office-format manipulation under a single vendor relationship with self-serve published pricing. Foxit's depth in PDF is real; barcode reading and writing and PowerPoint generation sit outside the Foxit catalogue, and each add-on (Conversion, OCR, Redaction, Compare) carries its own license activation.

Iron Suite's structural edges for this buyer profile:

  • Single bundled purchase: ten products under one license; no modular add-on activation, no separate SKUs for OCR or barcode
  • Native barcode, QR, and PPT: included; Foxit does not ship a barcode or PowerPoint module
  • Self-service procurement: published USD prices, perpetual licenses; Foxit requires a quote for every developer
  • Royalty-free base license: no per-deployment runtime royalty; Redistribution Add-On available for SaaS/OEM as a separate, predictable line item
  • Code-first DOCX/XLSX/PPTX: IronWord, IronXL, IronPPT handle Office formats directly without requiring an Office-to-PDF conversion layer

How is Iron Suite Different from Foxit PDF SDK

  • PDF core plus separately licensed Conversion, OCR, Redaction, and Compare add-ons: that is the Foxit PDF SDK lane, with barcode, QR, print, and scraping sitting outside the catalogue entirely. Iron Suite is a 10-product suite spanning PDF, Office, recognition, print, ZIP, and scraping under one license.
  • Pricing transparency. Iron Suite publishes USD tiers on the website; Foxit's developer SDK is quote-only with no public price card.
  • Licensing model. Iron Suite is perpetual; Foxit is per-developer seat plus per-deployment royalty, with each add-on licensed separately.
  • API surface. Iron Suite uses idiomatic .NET (new ChromePdfRenderer().RenderHtmlAsPdf(...)); Foxit's .NET binding surfaces native plumbing (Library.Initialize, StartParse, manual matrix and bitmap allocation, explicit Release).
  • Foxit's enterprise pitch, what's in it. Raw PDF spec corners (PDF/A linearization, embedded fonts, advanced AcroForm/XFA) and area-based redaction (Redaction.MarkRedactAnnot) are the workloads Foxit's pitch is anchored on, alongside a first-party Office-conversion add-on and a long ISV track record. IronPDF supports the full PDF/A conformance family (A-1a, A-1b, A-2a, A-2b, A-3a, A-3b, plus the PDF/A-4/4E/4F family per ISO 19005-4:2020) via the PdfAVersions enum, ships text-level redaction (RedactTextOnAllPages with regex support) inside the base bundle, and offers complete font management (Fonts.Add().Embed(), web-font support via WaitFor.AllFontsLoaded(), TrueType Collection support), so neither PDF/A nor string-based redaction nor font handling is a Foxit-exclusive. IronPDF also ships dedicated PDF/UA accessibility support, RenderHtmlAsPdfUA(html) producing a tagged accessible PDF in one call (default PDF/UA-1, PDF/UA-2 also supported), documented to meet Section 508 and WCAG 2.0 AA out of the box.
  • Cross-platform stack shape. Foxit ships separate SDK families across desktop, mobile (iOS/Android/MAUI), and Web from one vendor; Iron Suite focuses on .NET server, desktop, and cloud (a different distribution shape).

Conclusion

Foxit and Iron Suite answer different questions. Foxit answers a procurement that wants a quote-driven, modular native PDF engine with a long ISV/OEM record, plus add-ons for OCR, conversion, and area-based redaction. Iron Suite answers a procurement that wants a single perpetual bundle covering PDF (with the standards-tier capabilities named above), Office, recognition, and adjacent utilities at a published USD price, royalty-free deployment under the base license. For .NET teams whose document workload spans PDF, barcode, Office, and OCR, the Iron Suite bundle starts at $2,998 and is available at ironsoftware.com/csharp/suite.

Please noteFoxit PDF SDK is a registered trademark of its respective owner. This site is not affiliated with, endorsed by, or sponsored by Foxit Software Inc. All product names, logos, and brands are property of their respective owners. Comparisons are for informational purposes only and reflect publicly available information at the time of writing.