Docling はPDF等を解釈してMarkdown/JSONにするツールです。IBMが開発しました。arXivの Docling Technical Report に解説されています。Pythonから使えるほか、コマンド docling で使うこともできます。
Pythonで使うなら pip install docling あるいは uv add docling でインストールできますが、コマンドとして使うなら
uv tool install docling
とするのが便利です。この場合 ~/.local/bin にインストールされます(実体は UV_TOOL_DIR、デフォルトは ~/.local/share/uv/tools に入ります)。更新は
uv tool upgrade docling
です。
docling convert --help で使い方が表示されます。詳しい説明はドキュメントをご覧ください。docling convert example.pdf で example.md が生成されます。ローカルのPDFファイルの代わりにURLを与えることもできます。初回実行時にHugging Faceからモデルがダウンロードされ、~/.cache/huggingface/hub 以下に入ります。
実行はかなり遅いので、最初は小さいファイルで試してみるのがよさそうです。
図はデフォルトでは  のようにbase64でMarkdownに埋め込んでくれます。図をPNGにして参照する形にするにはオプション --image-export-mode=referenced を付けます。
日本語については
docling convert --image-export-mode=referenced --pdf-backend=pypdfium2 example.pdf
のようにしてPDFバックエンドを pypdfium2 に変える方が良さそうです。バックエンドのデフォルトは docling_parse で、これら以外に threaded_docling_parse、dlparse_v1、dlparse_v2、dlparse_v4 が使えるようです。
ちなみに、MarkdownはMacでは qlmanage -p example.md でプレビューできます。VS Codeで開いてMarkdownプレビューモードにする方が読みやすいかもしれません。