Compare/pymupdf4llm

PDFluent vs pymupdf4llm

pymupdf4llm turns PDFs into Markdown for RAG and LLM pipelines, built on top of PyMuPDF. PDFluent's structured-extraction API covers PDF plus DOCX, PPTX, XLSX, and HTML from one Rust core — currently shipping as a preview.

pymupdf4llm is PyMuPDF's official Markdown-extraction layer, purpose-built for RAG and LLM ingestion pipelines, and it only reads PDF. PDFluent's structured-extraction API (extract_markdown / extract_blocks) ships as a preview in 1.1.0 — not yet marked stable — and also covers DOCX, PPTX, XLSX, and HTML from the same Rust core as the rest of the SDK.

Side-by-side

PDFluent (Rust)
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(())
}
pymupdf4llm (Python)
import pymupdf4llm

markdown = pymupdf4llm.to_markdown("report.pdf")
print(markdown)

Feature comparison

FeaturePDFluentpymupdf4llm
Primary purposeGeneral PDF/Office SDK + preview structured extractionMarkdown extraction layer for PyMuPDF
Structured extraction statusPreview (1.1.0) — not yet stableEstablished, widely used in RAG pipelines
PDF to MarkdownPreview
DOCX to MarkdownPreview — at least as good as Docling on text, words, headings, heading levels, list levels, tables, TEDS, and coverage (A31, measured 2026-10-04)Not supported — PDF input only
PPTX to MarkdownPreview — at least as good as Docling on text, words, headings, heading levels, lists, and reading order; not tables/TEDS (A32, measured 2026-10-04)Not supported — PDF input only
XLSX to MarkdownPreview — at least as good as Docling on headings, tables, and TEDS; not words (A33, measured 2026-10-04)Not supported — PDF input only
HTML to MarkdownPreview — lists and tables at least as good as Docling; not text/coverage (A34, measured 2026-10-04)Not supported — PDF input only
PDF structure quality (headings, tables)Standard tier behind Docling-class tools as of our latest internal benchmark (ID pending)Reference point for that same internal benchmark
Peak memory on structured extraction17 MB peak RSS, 8 MB install (C15, measured 2026-09-26)Measured in the same run, within a 46–4,454 MB field of six tools (C15, measured 2026-09-26)
Throughput on structured extraction11.6 ms/page single-thread, 1.8 ms/page at 8 threads (C16, measured 2026-09-27)222 ms/page in its own batch (C16, measured 2026-09-27)
License modelAGPL v3 or commercialAGPL v3 or commercial (via Artifex, same as PyMuPDF)
Language bindingsRust, Python, Node.js, .NET, Java, WASMPython only

Pros and cons

PDFluent
  • Measured well ahead of pymupdf4llm on footprint and throughput on the same benchmark (C15 and C16, measured Sep 2026)
  • Covers DOCX, PPTX, XLSX, and HTML in addition to PDF — formats pymupdf4llm doesn't support
  • One Rust core shared with the rest of the SDK: Rust, Python, Node.js, .NET, Java, WASM
  • Same AGPL-or-commercial license model as pymupdf4llm
  • Structured extraction ships as a preview in 1.1.0 — not yet stable
  • PDF structure quality (headings, tables) still behind Docling-class tools on the standard tier as of our latest internal benchmark
  • Newer, with far less production mileage in RAG pipelines than pymupdf4llm
pymupdf4llm
  • Stable and widely adopted in RAG/LLM ingestion pipelines today
  • Backed by PyMuPDF's maturity and large community
  • Simple, focused API for the single job of PDF-to-Markdown
  • Free under the AGPL for open-source use
  • PDF input only — no DOCX, PPTX, XLSX, or HTML support
  • Python only — no Rust, Node.js, .NET, Java, or WASM bindings
  • Higher measured footprint and per-page latency than PDFluent on the same benchmark (C15 and C16, measured Sep 2026)

When to use each

Choose PDFluent

Choose PDFluent's structured extraction if you need Markdown output across PDF and Office formats from one engine, or if footprint and throughput matter more than using an established, stable tool today — keeping in mind it ships as a preview in 1.1.0.

Choose pymupdf4llm

Choose pymupdf4llm if you need a stable, battle-tested Markdown layer for PDF-only RAG pipelines right now and don't need Office-format input.

Bottom line

pymupdf4llm is the established choice today if you need stable, production-ready Markdown extraction from PDF for a RAG pipeline — it's been in use longer and is marked stable. PDFluent's extract_markdown and extract_blocks ship as a preview in 1.1.0: not yet stable, but already measured well ahead on footprint and throughput against pymupdf4llm and four other tools on the same benchmark (C15, measured 2026-09-26; C16, measured 2026-09-27), and already covering DOCX, PPTX, XLSX, and HTML in addition to PDF — formats pymupdf4llm doesn't touch. On raw PDF structure quality (headings and table recognition), PDFluent's standard tier is still behind Docling-class tools as of our latest internal measurement; that gap is open work, not a shipped claim.

Frequently asked questions

Try PDFluent free for 30 days

No credit card. No watermarks. Full SDK access.

PyMuPDF and MuPDF are trademarks of Artifex Software, Inc. PDFluent is an independent product of Innovation Trigger B.V. and is not affiliated with or endorsed by Artifex.