pdfmux
Enrichment pendingPDF extraction that checks its own work. #2 reading order accuracy — zero AI, zero GPU, zero cost.
GraphCanon updated today · GitHub synced today
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.
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
| Mode | Behavior | Typical cost |
|---|---|---|
| economy | Rule-based backends only. No LLM calls. | $0/page |
| balanced | LLM only for pages that fail rule-based extraction. | ~$0.002/page avg |
| premium | LLM 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.