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 has nothing to initialise: no licence key, no environment variable, no activation call.

  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 hands out a mutable form handle with doc.form_mut(), with one setter per field type.

  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 a published price, no native DLLs, and no licence key to install.

  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 pdfluent@1.0.0, and Cargo fetches and compiles it. No DLL to distribute, no shared library to load at runtime.

  2. Delete the Foxit key initialisation — PDFluent has nothing to replace it with

    Foxit requires a license key passed at initialization time, and licensing is per seat. PDFluent needs no key at all: nothing is validated at startup, and a licence covers an organisation or a product rather than a seat. Delete the Foxit key initialisation and replace it with nothing.

  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 is licensed per organisation or per product, so a replica costs nothing extra.
  • 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 form_mut().set_text(), with set_checkbox, set_radio, set_dropdown and set_multi_select for the other field types.

  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 is €999 a year for the whole organisation, or priced per product for OEM use, and never per developer.
  • 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 form_mut().set_text(), with set_checkbox, set_radio, set_dropdown and set_multi_select for the other field types.

  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.