Add via cargo:
Or edit Cargo.toml directly:
[dependencies]
pdfluent = "1"Enable optional feature flags (XFA, signatures, OCR, etc.):
[dependencies]
pdfluent = { version = "1", features = ["xfa", "signatures"] }use pdfluent::PdfDocument;
fn main() -> pdfluent::Result<()> {
let doc = PdfDocument::open("invoice.pdf")?;
let text = doc.extract_text()?;
println!("{text}");
Ok(())
}See the full API reference for forms, signatures, rendering, PDF/A conversion, and more, or the Cookbook for ten recipes that are compiled on every release.
Every licence gets the same SDK. The licences differ on two things: whether you publish your own source, and whether you ship PDFluent inside a product you sell.
Structured extraction returns Markdown, blocks, words with boxes, and chunks for retrieval pipelines. Blocks carry paragraphs, headings with level, list items, table cells with grid position, and running heads, each with page and box.
Two quality tiers:
fast (default): the engine alone, pure Rust, no models, runs everywhere including WebAssembly.balanced (Preview): runs a layout model and a table-structure model locally through ONNX Runtime 1.23.2 [B49, 2026-10-10]. Native only, never WebAssembly.Install the models once with pdfluent models install layout tables. The pdfluent command comes from the CLI archives on the 1.1.0 release page; pip install pdfluent==1.1.0 and npm install @pdfluent/node do not install it. pdfluent models status shows what is installed and whether the pins verify.
Structured extraction ships as Preview: output quality is still improving and the API may change in a minor release. Table results are in claims A38, A39 and A40; see table extraction results.
Use the SDK with no configuration and no licence key. Nothing in the output is stamped.
The complete SDK, in production, at any scale. Nothing is withheld and nothing expires. The AGPL asks one thing back: publish your own corresponding source.
The right not to publish your own source. Four self-service buttons, per organisation, or per product when you ship PDFluent inside something you sell. No seats, no quotes.
There is no licence key and nothing to activate. The SDK makes no network call at any point, so it works air-gapped by construction. Pricing
| Binding | Status | Install | |
|---|---|---|---|
| Rust (native) | Available | cargo add pdfluent@1.1.0 | Details |
| Python | Available | pip install pdfluent==1.1.0 | Details |
| WASM / JavaScript | Available | npm install @pdfluent/sdk-wasm | Details |
| Node.js | Available | npm install @pdfluent/node | Details |
| .NET / C# PDF SDK | Available | dotnet add package PDFluent | Details |
| Java PDF SDK | Available | com.pdfluent:pdfluent:1.1.0 Version 1.1.0 is served from the PDFluent Maven repository at https://maven.pdfluent.com, so add it to your build next to the dependency. Maven Central carries 1.0.0; 1.1.x follows there later. | Details |
| C API | Internal | Used by language bindings; not separately distributed yet |
The full SDK, free under the AGPLv3. No sign-up and no key.