DoclingでPDFを読む

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.pdfexample.md が生成されます。ローカルのPDFファイルの代わりにURLを与えることもできます。初回実行時にHugging Faceからモデルがダウンロードされ、~/.cache/huggingface/hub 以下に入ります。

実行はかなり遅いので、最初は小さいファイルで試してみるのがよさそうです。

図はデフォルトでは ![Image](data:image/png;base64,...) のようにbase64でMarkdownに埋め込んでくれます。図をPNGにして参照する形にするにはオプション --image-export-mode=referenced を付けます。

日本語については

docling convert --image-export-mode=referenced --pdf-backend=pypdfium2 example.pdf

のようにしてPDFバックエンドを pypdfium2 に変える方が良さそうです。バックエンドのデフォルトは docling_parse で、これら以外に threaded_docling_parsedlparse_v1dlparse_v2dlparse_v4 が使えるようです。

ちなみに、MarkdownはMacでは qlmanage -p example.md でプレビューできます。VS Codeで開いてMarkdownプレビューモードにする方が読みやすいかもしれません。