Skip to main content

Fast local PDF to Markdown converter — powered by pymupdf4llm & uv

Project description

pdf2md-uv

Fast local PDF to Markdown converter — powered by pymupdf4llm and distributed via uv.

pdf2md paper.pdf           paper.md
pdf2md slides/             convert all PDFs in directory

Why pdf2md-uv?

There are many tools named pdf2md, but most are:

  • ❌ Browser-based apps (no CLI)
  • ❌ Cloud APIs (data privacy risk)
  • ❌ Heavy ML models (need GPU)

pdf2md-uv is different:

  • Modern: Packaged with uv — the new standard for Python tooling
  • Fast: Seconds for typical documents
  • Private: 100% local, no cloud API calls
  • Smart: Auto-detects scanned pages and uses built-in RapidOCR

Install

Requires uv:

uv tool install pdf2md-uv

That's it. No pip install, no virtualenv setup, no dependency conflicts.

Usage

# Single file
pdf2md input.pdf

# Custom output path
pdf2md input.pdf -o custom.md

# Batch convert directory
pdf2md papers/

# Quiet mode (for scripting)
pdf2md input.pdf -q

How it works

pdf2md-uv wraps pymupdf4llm to provide a zero-config CLI:

  1. Text-based PDFs: Direct text extraction (100% accurate)
  2. Scanned PDFs: Automatic OCR using RapidOCR (PP-OCRv4 model)

Everything runs locally on your CPU.

Comparison

Tool Tech Offline? Notes
pdf2md-uv (this) pymupdf4llm + RapidOCR Fast, local, uv-packaged
mrmps/pdf2md Next.js browser app Frontend only
link2004/pdf2md Mistral AI API Cloud dependency
mathinml/pdf2md Qwen2.5-VL (3B) Needs GPU

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdf2md_uv-0.1.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdf2md_uv-0.1.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file pdf2md_uv-0.1.0.tar.gz.

File metadata

  • Download URL: pdf2md_uv-0.1.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pdf2md_uv-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6e0cd6f117fa8ffcd4e6e89db2e64b5ec0fbca857b665e7d9ea9f82e9b33e4b8
MD5 103b608a7813c7a1602655d2215807f4
BLAKE2b-256 f71fa32869ed22aeb7f560d7749e389a315c54eae8e83e84f174bb22b321c63b

See more details on using hashes here.

File details

Details for the file pdf2md_uv-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pdf2md_uv-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pdf2md_uv-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2f35591be2d94cba1384ff5b6c96769616f79cabef93d251e3e922bbcbc15bb
MD5 e131b50706767a3dee1f3b2a909e9e99
BLAKE2b-256 ef509a8682e5069dfdcd89efc135b3fdb7fbdcc8d67be48f6126afeb3694e1eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page