[2025-03-18 追記] SmolDocling というOCRエンジンが追加されたようです。
Docling はPDF等を解釈してMarkdown/JSONにするツールです。IBMが開発しました。arXivの Docling Technical Report に解説されています。Pythonから使えるほか、コマンド docling で使うこともできます。
pip install docling でインストールできますが、依存関係が複雑で、2025年10月26日にインストールしたときは lxml 6.0.2 → 5.4.0、numpy 2.3.4 → 2.2.6、pillow 12.0.0 → 11.3.0 にそれぞれダウングレードされました。再度 pip install --upgrade lxml numpy pillow して依存関係を壊してみましたが、特に問題なく動いているようです。
docling --help で詳しいヘルプが出ます。docling example.pdf で example.md が生成されます。ローカルのPDFファイルの代わりにURLを与えることもできます。初回実行時にHugging Faceからモデルがダウンロードされ、~/.cache/huggingface/hub/models--ds4sd--docling-models に入ります。モデルは全体で550Mバイトほどでした。
実行はかなり遅いので、最初は小さいファイルで試してみるのがよさそうです。日本語についてはやや難点が残っているようで、PDFバックエンドをオプション --pdf-backend=pypdfium2 で pypdfium2 などに変えるほうがよさそうです。
図は  のようにしてMarkdownに埋め込んでくれます。
MarkdownはMacでは qlmanage -p *.md でプレビューできます。