DoclingでWordの見出しやリンクが欠けるときは?2.150.1への更新と変換後の確認方法

Wordの見出しがMarkdownでは普通の文章や箇条書きになり、リンクもページの先頭へ飛んでしまう。Doclingで社内資料を検索・RAG向けに変換しているなら、2.150.1への更新と、代表文書の再変換を確認する価値があります。2026年11月14日16時04分(日本時間)公開のこの版には、DOCXの見出し判定、リンク先の保持、表の構造に関する修正が含まれます。

以下は公式リリースと実装資料に基づく手順です。利用者の文書を実機で検証した結果ではないため、まず少数のファイルで出力を比較してください。

Word文書の見出し、リンク、表が整理されたテキストへ変換される様子を表した概念イラスト
DOCXの構造を読み取り、変換後に確認する流れを表した生成イラスト。実際の製品画面ではありません。
目次

1. 今回の修正で直る見出しの条件

対象の一つは、見出しスタイルではなく段落そのものにアウトラインレベルが設定された文書です。従来はスタイル側の情報だけを参照していたため、Wordでは見出しとして扱われる段落を、本文やリスト項目として出力する場合がありました。2.150.1では段落のw:outlineLvlを先に確認します。

文字を大きくしたり太字にしたりしただけの段落まで、自動的に見出しと判断する修正ではありません。再変換しても見出しにならない場合は、元文書に見出しスタイルやアウトラインレベルがあるかを確認します。また、この修正だけでテキストボックスの並び順や、別の原因による本文のリスト化まで解決するとは限りません。見出し修正の対象と制限が公式PRに明記されています。

2. 変換に使っているPython環境を更新する

ノートブック、定期ジョブ、端末のコマンドで別々のPythonを使っていると、一か所を更新しても実際の処理は旧版のままです。まず変換を実行する環境を選び、既存の依存関係ファイルを保存したうえで、検証用環境へ次の更新を適用します。例は修正版を明確にするため2.150.1に固定しています。

python -m pip install --upgrade "docling==2.150.1"
python -m pip check
python -c "from importlib.metadata import version; print('docling:', version('docling')); print('docling-slim:', version('docling-slim'))"

doclingとdocling-slimの両方を確認するのは、この版のdoclingが同じ版のdocling-slimを導入するパッケージ構成だからです。インポートするdoclingモジュールの実体は後者にあります。公式の版指定ファイルではPython 3.10以上、4未満が必要です。2.150.1の依存関係とインストール手順を参照してください。

pip checkで衝突が出たら、更新成功と扱わずプロジェクトの制約を確認します。ノートブックのカーネルや常駐ワーカーも再起動し、新しいプロセスで版を確認してください。これはパッケージ整合性の確認であり、文書変換の正しさを保証するものではありません。

3. 元のDOCXを残してMarkdownへ再出力する

最初の対象には、見出し、外部リンク、脚注、表を含む小さな文書を選びます。次の例はsample.docxを読み、別名のsample-reviewed.mdへUTF-8で保存します。同名の出力ファイルがあれば上書きするので、比較用の旧出力は別名で残してください。

from pathlib import Path
from docling.document_converter import DocumentConverter
from docling_core.types.doc import ContentLayer

doc = DocumentConverter().convert("sample.docx").document
markdown = doc.export_to_markdown(
    included_content_layers={ContentLayer.BODY, ContentLayer.FURNITURE}
)
Path("sample-reviewed.md").write_text(markdown, encoding="utf-8")

DocumentConverterから文書を取り出してMarkdownへ出力する流れは、公式クイックスタートに沿っています。この例のポイントはFURNITUREも含める指定です。本文だけでよければ通常のdoc.export_to_markdown()が使えます。

4. 脚注の「読み取れた」と「出力した」を分ける

2.150.1は脚注・文末脚注にあるリンク先の保持も修正します。ただし、脚注は文書モデルでFURNITURE層に属するため、リンクを正しく読み取れても、既定のMarkdown出力では脚注自体が省かれることがあります。注釈が必要なら、上の例のように本文とFURNITUREを両方含めて確認します。ヘッダーなどの周辺要素も含まれ得るため、検索に不要な文字が増えていないかも見てください。

脚注番号が見えるだけで確認を終えず、リンク付きの語句にURLが付いているかを調べます。詳細は脚注・文末脚注リンクの修正にあります。本文の外部リンクについては、Wordが別属性に持つ#sectionのようなフラグメントも保持されるようになりました。リンク先のページが合っていても、目的の節へ移動できるかは別に確認してください。外部リンクのフラグメント修正が根拠です。

5. 大量変換の前に見る4項目

  1. 見出し:主要な章が##や###になり、親子関係が自然か。元文書の章一覧と突き合わせます。
  2. リンク:本文、脚注、文末脚注それぞれで、表示文字とリンク先が対応し、必要な#fragmentが残るか。
  3. 表:セル内の1セル表、リストの直後の表で、文字が欠けたり別の場所へ出たりしないか。
  4. 取り込み先:出力を再生成したあと、検索インデックスやRAGの取り込み処理も更新されているか。古いMarkdownを読んでいないか確認します。

今回の版には、セル内にある1セル表の配置や、表の前でリストを閉じる処理の修正も含まれます。ただしMarkdownはWordの紙面レイアウトをそのまま再現する形式ではありません。見た目の完全一致ではなく、必要な本文、階層、リンク先が保持されたかを判定基準にすると確認しやすくなります。

6. 改善しないときに残す情報

版が合っているのに直らない場合は、Pythonの実行パス、両パッケージの版、使った変換コード、問題のある段落と期待する出力をまとめます。元文書のコピーから関係のない部分や機密情報を除き、少数の段落でも再現するかを確認すると、入力側の構造と変換側の問題を切り分けやすくなります。既存の大量取り込みへすぐ反映せず、代表文書の差分を確認してから対象を広げてください。

公開時点の変更一覧はDocling 2.150.1公式リリース、対応する入出力形式は公式形式一覧で確認できます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次