Migrate from Apryse, Foxit, IronPDF, or iText

This guide provides the specific steps for developers to migrate their existing PDF operations from these four SDKs to PDFluent.

Migrate from Apryse to PDFluent

A step-by-step guide for replacing Apryse (PDFTron) with PDFluent. Covers dependency setup, license initialization, text extraction, form filling, and saving.

  1. Remove the Apryse NuGet package and DLL dependency

    Apryse ships a native C++ DLL (PDFNetC.dll on Windows, libPDFNetC.so on Linux) alongside the managed wrapper. Remove both and add pdfluent to Cargo.toml.

  2. Remove license initialization

    Apryse requires calling PDFNet.Initialize() with a license key before any API use. PDFluent reads the license from an environment variable or config file.

  3. Open a document and extract text

    Apryse uses PDFDoc plus TextExtractor. PDFluent uses Document::open and page.text().

  4. Fill form fields

    Apryse uses doc.GetField() to retrieve and set individual field values. PDFluent uses an acroform handle.

  5. Save the document

    Apryse Save() takes a SaveOptions flags enum. PDFluent save() writes to the output path with sane defaults.

  • Apryse uses 1-based page indexing (GetPage(1) is page 1). PDFluent uses 0-based indexing (page(0) is page 1).
  • Apryse requires PDFNet.Initialize() before any call. Forgetting this causes a runtime panic. PDFluent has no equivalent requirement.
  • Apryse's WebViewer (JavaScript viewer product) has no direct PDFluent equivalent. PDFluent WASM can power a custom viewer.

From Foxit SDK to PDFluent

Foxit requires per-seat licensing, ships native C++ binaries, and bundles DLL dependencies. PDFluent is a Rust crate with published pricing, no native DLLs, and a self-serve trial.

  1. Remove the Foxit native binaries

    Foxit ships platform-specific DLLs or shared libraries that must travel with your application. PDFluent is a single Rust crate — cargo add [email protected], and Cargo fetches and compiles it. No DLL to distribute, no shared library to load at runtime.

  2. Replace the Foxit license key with a PDFluent license

    Foxit requires a license key passed at initialization time, and licensing is per seat. PDFluent uses a single license file with transparent published tiers. Replace the Foxit key initialization with a one-line PDFluent license call, or rely on the 30-day trial mode for evaluation.

  3. Map Foxit document operations to PDFluent equivalents

    Foxit operations map closely to PDFluent. Open a document, access pages by index, extract text or fill forms, and save. The main difference is error handling: Foxit returns null or numeric error codes; PDFluent returns Result types that the compiler forces you to handle.

  • Foxit page indexes are 0-based, matching PDFluent's 0-based indexing. No page number adjustments are needed.
  • Foxit's per-seat licensing means adding a server replica requires purchasing an additional seat. PDFluent pricing is per deployment tier, not per seat.
  • Foxit ships separate SDKs for different platforms (Windows, Linux, macOS, iOS, Android). PDFluent builds from one codebase for all targets, including WASM.
  • If you use Foxit's annotation APIs, verify PDFluent's annotation support covers your use case before migrating.

Migrate from IronPDF to PDFluent

A step-by-step guide for replacing IronPDF with PDFluent. Covers dependency setup, opening PDFs, text extraction, form filling, and saving.

  1. Replace the dependency

    Remove the IronPdf NuGet package and add pdfluent to Cargo.toml. If your project is in C# you can call PDFluent through the C API or use the .NET binding package.

  2. Open an existing PDF

    IronPDF uses PdfDocument.FromFile(). PDFluent uses Document::open.

  3. Extract text

    IronPDF drives Chromium to extract text, which can produce inconsistent results on non-HTML PDFs. PDFluent reads directly from the PDF content stream.

  4. Fill AcroForm fields

    IronPDF uses Form.GetFieldByName(). PDFluent uses acroform().set_field().

  5. Save the document

    IronPDF uses SaveAs(). PDFluent uses Document::save().

  • IronPDF's primary feature is HTML-to-PDF rendering via Chromium. PDFluent does not provide HTML-to-PDF conversion.
  • IronPDF licenses per developer per year. PDFluent uses flat perpetual licences (pay once), priced by tier — no per-developer recurring fees.
  • IronPDF requires the Chromium binary to be present on the server. PDFluent has no native dependencies.

Migrate from iText 7 to PDFluent

A step-by-step guide for moving an iText 7 Java codebase to PDFluent in Rust. Covers opening documents, text extraction, form filling, and saving.

  1. Replace the dependency

    Remove the iText Maven dependency and add PDFluent to your Rust project with cargo add.

  2. Open a document

    iText uses PdfReader and PdfDocument. PDFluent uses Document::open which returns a Result.

  3. Extract text

    iText uses PdfTextExtractor with a LocationTextExtractionStrategy. PDFluent exposes a page-level extract_text method.

  4. Fill form fields

    iText uses PdfAcroForm.getField().setValue(). PDFluent uses acroform().set_field().

  5. Save the output

    iText writes to a PdfWriter. PDFluent uses Document::save.

  • iText page numbers are 1-indexed. PDFluent page numbers are 0-indexed.
  • iText AGPL requires source disclosure for commercial use. Check your license before migration.
  • iText's pdfHTML add-on (HTML to PDF) has no direct PDFluent equivalent.