Docling is a Python toolkit purpose-built for feeding documents into gen-AI pipelines. PDFluent is a general-purpose PDF SDK with a preview structured-extraction layer aimed at the same pipelines.
Docling, started at IBM Research and now hosted by the LF AI & Data Foundation, parses PDFs, Office files, images, and more into a unified document model built for generative-AI pipelines. It does not create, edit, or sign PDFs; that was never its goal. PDFluent is a general-purpose PDF SDK (parsing, rendering, forms, signatures, PDF/A, redaction) that also ships a preview structured-extraction layer aimed at the same RAG/LLM use case Docling targets.
use pdfluent::{ExtractOptions, PdfDocument};
fn main() -> pdfluent::Result<()> {
let doc = PdfDocument::open("report.pdf")?;
// Structured extraction (Preview)
let markdown = doc.extract_markdown(&ExtractOptions::default())?;
println!("{}", markdown);
Ok(())
}from docling.document_converter import DocumentConverter
source = "report.pdf"
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown())| Feature | PDFluent | Docling |
|---|---|---|
| License model | AGPL v3 or commercial | MIT |
| Core engine language | Rust | Python |
| Official Rust bindings | ||
| Official Node.js bindings | ||
| Official .NET bindings | ||
| Official Java bindings | ||
| WebAssembly (runs in the browser) | ||
| PDF creation & editing | N/A, not a general PDF library, by design | |
| Merge / split PDFs | N/A, not a general PDF library, by design | |
| Digital signatures | N/A, not a general PDF library, by design | |
| AcroForms / XFA forms | N/A, not a general PDF library, by design | |
| PDF/A validation & conversion | N/A, not a general PDF library, by design | |
| Redaction | N/A, not a general PDF library, by design | |
| Markdown / LLM-ready text extraction | Preview: extract_markdown() / extract_blocks() (1.1.0) | Core purpose of the project |
| Table structure recognition | Balanced tier Preview: higher than Docling on two samples [A38, A39, 2026-10-14] | |
| Non-PDF input formats (DOCX, PPTX, XLSX, HTML, images, audio, ...) | DOCX, PPTX, XLSX to Markdown or Docling JSON | |
| Vision-language-model pipeline option | Yes: GraniteDocling and other VLMs | |
| Local, offline execution | ||
| Published, self-service pricing | Free, open source, no commercial tier |
Choose PDFluent if you need a single engine that both manipulates PDFs (create, edit, sign, forms, PDF/A) and extracts structured, LLM-ready text from them, with bindings beyond Python, and faster/lighter extraction on the axes we've measured.
Choose Docling if your pipeline needs to ingest HTML, images or audio, which PDFluent does not accept, or needs a vision-language-model pipeline.
This isn't an apples-to-apples SDK comparison. Docling and PDFluent overlap on one axis: turning a PDF into clean text for an AI pipeline. On that axis, our own measurements in fast mode on one 8-vCPU cpx42 machine put PDFluent ahead on memory and throughput [C15, 2026-09-26; C16, 2026-09-27]. In balanced mode with the table model, table structure measured higher than Docling on FinTabNet [A38, 2026-10-14] and PubTables-1M [A39, 2026-10-14]; those table numbers come from the development (tuning) split, so PDFluent's side is an upper bound, not an independent held-out result. The table-structure model we ship is Microsoft's Table Transformer v1.1-all, which Microsoft trained on PubTables-1M and FinTabNet.c. We have not checked whether our sample pages fall inside its training data, so the FinTabNet and PubTables-1M results may be favourable to us for that reason too. If you need general PDF creation, editing, signing, or forms, Docling isn't built for that.
Try PDFluent free for 30 days
No credit card. No watermarks. Full SDK access.