pdfmux logo

pdfmux

Enrichment pending
NameetP/pdfmux

PDF extraction that checks its own work. #2 reading order accuracy — zero AI, zero GPU, zero cost.

GraphCanon updated today · GitHub synced today

74
Stars
12
Forks
6
Open issues
0
Watchers
4d
Last push
Python MITCreated Mar 3, 2026

Trust & integrity

Full report
Maintenance
Very active (3d since push)
As of today · Source: github_public_v1
Provenance
Not a fork · Personal account
As of today · Source: github_public_v1
Security (OSV)
1 medium (1 medium)
As of today · Source: mcp_manifest@v1

Public GitHub metadata and optional OSV dependency scans. Signals, not a guarantee. Trust methodology.

Overview

PDF extraction that checks its own work. #2 reading order accuracy — zero AI, zero GPU, zero cost.

Capability facts

Deploy
Self-host

Source: dockerfile:Dockerfile · Jul 11, 2026

Docker
Dockerfile present

Source: dockerfile:Dockerfile · Jul 11, 2026

CLI
CLI entrypoint

Source: pyproject.toml:[project.scripts] · Jul 11, 2026

MCP server
No MCP server detected

Source: repo_scan · Jul 11, 2026

Languages
python

Source: github.language+pyproject.toml · Jul 11, 2026

Categories

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Jul 11, 2026)

Requires Python 3.11+.
Source link

Tags

README

Install

pip install pdfmux

That handles digital PDFs. For any real-world batch, install pdfmux[ocr] too — almost every directory of PDFs has at least one scan, and without OCR those pages return empty text:

pip install "pdfmux[ocr]"             # ⭐ recommended — RapidOCR for scanned pages (~200MB, CPU)

Other backends, by document type:

pip install "pdfmux[tables]"          # Docling — table-heavy docs (~500MB)
pip install "pdfmux[opendataloader]"  # OpenDataLoader — complex layouts (Java 11+)
pip install "pdfmux[marker]"          # Marker — neural extraction for academic papers
pip install "pdfmux[llm]"             # Gemini fallback (default LLM)
pip install "pdfmux[llm-claude]"      # Claude (Sonnet / Opus)
pip install "pdfmux[llm-openai]"      # GPT-4o family
pip install "pdfmux[llm-ollama]"      # Ollama (any local model)
pip install "pdfmux[llm-mistral]"     # Mistral OCR API ($0.002/page)
pip install "pdfmux[llm-all]"         # all LLM providers (incl. Gemma 4 via Gemini key)
pip install "pdfmux[watch]"           # `pdfmux watch <dir>` auto-convert on change
pip install "pdfmux[all]"             # everything

Requires Python 3.11+.


cost-aware extraction with budget cap

pdfmux convert report.pdf --mode economy --budget 0.50


predict cost before running anything

pdfmux estimate big-report.pdf --llm-provider gemini


│ Extractor │ Status │ Version │ Install │


│ Docling │ missing │ -- │ pip install pdfmux[tables] │


│ Surya │ missing │ -- │ pip install pdfmux[ocr-heavy] │


{"event":"classified","page_count":312,"plan":"pymupdf+gemini-fallback"}


Default install — already includes python-bidi for RTL reordering

pip install pdfmux


Cost Modes

ModeBehaviorTypical cost
economyRule-based backends only. No LLM calls.$0/page
balancedLLM only for pages that fail rule-based extraction.~$0.002/page avg
premiumLLM on every page for maximum quality.~$0.01/page

Set a hard budget cap: --budget 0.50 stops LLM calls when spend reaches $0.50 per document.