Docling はPDF等を解釈してMarkdown/JSONにするツールです。IBMが開発しました。arXivの Docling Technical Report に解説されています。Pythonから使えるほか、コマンド docling で使うこともできます。
pip install docling でインストールできますが、依存関係が複雑なので、普段使いのPythonに入れるのではなく、例えばuvを使って
mkdir /path/to/docling cd /path/to/docling uv venv uv pip install docling
として、/path/to/docling/.venv/bin/docling のようにして起動することにしました(/path/to/ の部分は適宜変更してください)。Pythonは3.13で大丈夫でした。
docling --help で詳しいヘルプが出ます。docling example.pdf で example.md が生成されます。ローカルのPDFファイルの代わりにURLを与えることもできます。初回実行時にHugging Faceからモデルがダウンロードされ、~/.cache/huggingface/hub 以下に入ります。
実行はかなり遅いので、最初は小さいファイルで試してみるのがよさそうです。日本語についてはPDFバックエンドをオプション --pdf-backend=pypdfium2 で pypdfium2 に変えるなどする方がいいかもしれません。
図は  のようにbase64でMarkdownに埋め込んでくれます。
MarkdownはMacでは qlmanage -p *.md でプレビューできます。