BookTranslator
BookTranslator

読む順序を崩さずに段組みPDFを翻訳する方法

翻訳する前に2段組みPDFの読み取り順を確認し、その結果に基づいてレイアウト保持・OCR・再構築のいずれかのワークフローを選び、翻訳後の段組み・キャプション・あふれを確認する方法を解説します。

BookTranslator

BookTranslator Team

23 min read

簡単な答え:翻訳する前に読み取り順を確認する

2段組みのPDFは見た目が整っていても、翻訳ツールに渡す段落の順序が間違っていることがあります。そうなると、文単位では流暢でも、ページ全体としては意味が通らなくなります。どんなツールも、誤った順序で読み取った原文を翻訳で解決することはできません。

したがって、作業の順序は次のとおりです。

  1. ページの読み取り方を確認する。 代表的なページを1ページコピーし、すべての段落が人間の読む順序で出てくることを確認します。
  2. その確認結果からワークフローを選ぶ。 順序が正しければレイアウト保持型のPDF翻訳を、テキストが使えない場合はOCRモードを、編集可能なファイルが必要な場合は変換して修復するルートを使います。
  3. 翻訳後の段組みを確認する。 段の切れ目、図のキャプション、全幅の注記、脚注、長すぎる行に注目します。

このガイドの残りでは、ステップ1を省略できない理由を、ダウンロードして自分で実行できる小さなテストを使って示します。エクスポートされたレポート、論文、ニュースレターなど、実際のテキストレイヤーを持つPDFを対象とします。ページがスキャンの場合は、スキャンしたPDFを翻訳する方法から始めてください。

テストした内容

2026年10月20日に、同じテキストから3つの1ページPDFを作成しました。タイトル、左段の上部に図のボックス、各段に3段落、両段にまたがる太字の注記、脚注が含まれています。各段落はP1からP8までのマーカーで始まるため、正しい読み取り順はP1からP8です。

左段の上部に図のボックスがあり、その下に段落P1からP3、右段にP4からP6、全幅の注記P7がある2段組みのテストページ

3つのファイルは、画面上では見えない点で異なります。

  • two-column-stream-logical.pdfは、テキストを左段、次に右段の順で保存します。
  • two-column-stream-rowwise.pdfは見た目は同じですが、行ごとに段を交互に切り替えて保存します。
  • two-column-no-figure-rowwise.pdfは行ごとにテキストを保存し、図のボックスはありません。これが対照ファイルです。

次に、7つの一般的なオープンソース手法でテキストを抽出し、それぞれが返す段落順を記録しました。

抽出ツール論理保存、図あり行単位保存、図あり行単位保存、図なし
pdftotext 26.08.0(デフォルト)P4 P1 P5 P6 P2 P3 P7 P8P4 P1 P5 P6 P2 P3 P7 P8P1~P8 正しい
pdftotext -rawP1~P8 正しいP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pdftotext -layoutP4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pypdf 5.1.0 extract_text()P1~P8 正しいP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pdfminer.six 20240706P4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1~P8 正しい
PyMuPDF 1.24.14 get_text()P1~P8 正しいP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
PyMuPDF 1.24.14 get_text(sort=True)P4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8

7つの手法のうち、3つのファイルすべてを正しく処理できたものはありませんでした。1つのファイルを正しく処理できた手法は、必ず別のファイルで失敗しました。コントロールファイルでは、pdftotext -raw、pdftotext -layout、および sort=True を指定した PyMuPDF も、2つの段のテキストが混ざった行を3行出力しました。これは、コピーしたテキストが段間の余白をまたいで流れるときに読者が目にするのとまさに同じ現象です。sort=True を指定した PyMuPDF は、他の2つのファイルでもそれぞれ1行、同様の混在行を生成しました。

このテストは意図的に小規模です。ReportLab で作成した、タグ付けされていない合成の英語ページ1枚だけを使っています。このテストはこれらのライブラリを順位付けするものではなく、BookTranslator を含むいかなる翻訳製品もテストしていません。このテストが示すのは、もっと限定的で役に立つことです。同じ見た目のページでも異なるソース順序が生まれ得るため、信頼できる確認方法は自分のファイルで試すことだけです。

このテストは、フィクスチャ生成スクリプト、3つのPDF(論理順、行順、図なし行順)、読み順チェッカー、7つの手法すべてを呼び出す抽出実行スクリプト、および結果CSVを使って再現できます。

同じページが異なる順序で読まれる理由

抽出ツールは2つの戦略のいずれかを使い、それぞれが異なるファイルで失敗します。

戦略1:ファイルに保存された順序に従う。 PDF は作成者が書いた順序でテキストを描画します。poppler のマニュアルは pdftotext -raw を「テキストをコンテンツストリームの順序で」保持するものと説明しており(このモードはもはや推奨されていません)、PyMuPDF のドキュメントはデフォルト出力が「ドキュメントにコード化されているとおり」のプレーンテキストであると述べています(poppler pdftotext マニュアル、PyMuPDF テキストレシピ)。これは、ファイルがテキストを読み順で保存している場合には機能します。しかし、2番目のファイルのように保存順序が行順である場合、ページの見た目は同じでも失敗します。

戦略2:ページ上のテキストの位置から順序を再構築する。 pdftotext のデフォルトモードはテキストを「読み順で」出力しようとし、pdfminer.six は近接する行をボックスにグループ化し、順序付けの際に「水平および垂直位置」を重み付けできます。また、PyMuPDF の sort=True は「左上から右下へ」並べ替えます(pdfminer.six LAParams)。これらの手法は保存された順序を無視するため、論理順ファイルと行順ファイルで同じ結果が得られます。

コントロールファイルが失敗の理由を説明します。図がない場合、pdftotext のデフォルトモードと pdfminer.six はどちらも P1 から P8 まで正しく読み取ります。左段の上部に図のボックスを追加すると、右段の最初の段落(P4)がページ上で最も高いテキストになります。垂直位置を重み付けする手法は、そこからページを開始します。

これは特殊なケースではなく、よくあるページデザインです。論文は左段を図や要旨ボックスで始め、雑誌は画像の下から段を始め、マニュアルは最初の手順の上に警告ボックスを置きます。全幅の注記(P7)と脚注(P8)はどの実行でも位置を保ったため、ページの下部だけを確認するチェックでは問題を見逃します。

ステップ1:自分のPDFを5分で確認する

テストファイルのマーカーはあなたのドキュメントには存在しませんが、自分で選んだ数文を使えば同じ確認ができます。

  1. 1ページ目ではなく、最も難しいページを選びます。 段の上部近くに図、表、または囲み注記があり、途中に全幅の見出しや注記がある2段組みのページを選びましょう。
  2. 5つのアンカーフレーズを読み順に書き留めます:左段の最初の語、左段の最後の語、右段の最初の語、全幅要素、そしてキャプションです。
  3. PDFビューアからページ全体をコピーし、プレーンテキストエディタに貼り付けます。ソースプレビューがあるツールを使う場合は、そのプレビューを使ってください。ツールが実際に受け取った順序が表示されるからです。
  4. 貼り付けたテキスト内でアンカーを探します。 それらは書き留めた順序で現れるはずで、1行に両方の段の語が含まれてはいけません。
  5. 別の種類のページでも繰り返します。参考文献ページ、サイドバー付きのページ、章の最初のページなどです。

結果は次のように解釈します:

貼り付けたテキストが示すものそれが通常意味すること次のステップ
アンカーが順序どおりで、混在行がないテキストと読み順は使用可能レイアウトを保持したPDF翻訳
右の段が左より先に始まるページが縦位置で読み取られているファイル全体の支払い前に、このページそのもので翻訳ツールを試す
行が両方の段のテキストを混ぜているページが横一列に読み取られているコピー&ペーストせず、ファイルベースのワークフローを使い、このページで試す
段落が段の間で飛ぶ保存された順序が行ごと、または壊れているファイルベースのワークフローを試し、失敗したら先に修復または変換する
何も貼り付かない、または文字が間違っている画像のみのページ、または壊れたテキストレイヤーOCRを使う。PDFテキスト抽出とOCRの比較を参照

コピー&ペーストは簡単な確認であり、他のツールがどう動くかの証明ではない。私たちの表は、2つのツールが同じファイルを異なる方法で読めることを示している。ビューアでの結果は、そのファイルがどれほど危険かを教えてくれる。ツール自身のプレビュー、または1ページだけのテスト翻訳は、そのツールが実際に何を読むかを教えてくれる。

テキストが正しい文字で貼り付いても、間隔や改行が壊れている場合は、段の順序を判断する前にコピー&ペーストのテキスト問題を修正すること。

ステップ2:見た結果からワークフローを選ぶ

レイアウトを保持するとツールが主張するかどうかではなく、確認結果からワークフローを選ぶ。

順序が正しく、テキストが選択可能。 チャンクを貼り付けるのではなく、PDFをファイルとして翻訳する。レイアウト保持型のワークフローは翻訳されたテキストをページに戻すので、段、図、柱は読者が期待する位置に残る。BookTranslatorでは、それが標準のPDF翻訳パスだ。私たちのものを含め、レイアウトを保持するという約束は、ステップ1で見つけた最も難しいページで検証すべきものであり、保証として扱うべきではない。

順序が図や囲み要素の近くだけで壊れる。 文書全体を翻訳する前に、選んだツールで問題のあるページを1つ通す。そのページが正しい順序で出てくれば、ツールはコピー確認と同じ戦略を使っていない。スクランブルされて出てくるなら、ファイルの残りが違う挙動をすることを期待せず、ワークフローを変えること。

ページがスキャンされている、またはテキストレイヤーが使えない。 OCRを使う。BookTranslatorのOCRモードはページ画像を読み取り、きれいな翻訳済みPDFを再構築する。そのページでは、正確なレイアウトよりも内容の保持が重要な教科書、学術論文、表、画像の多いページに推奨している。このガイドのフィクスチャではテストしていない。トレードオフは明示されている:OCRモードは元のレイアウト、フォント、フォントサイズを保持しようとしない。特にスキャンについては、スキャンしたPDFを翻訳する方法を参照。

とにかく編集可能な文書が必要。 PDFをWordに変換し、そこで読み順を修正し、DOCXを翻訳する。これが最も手間がかかるが、翻訳前に段落順を直接修正できる唯一のルートだ。レイアウトも変わるので、出力をさらに編集する場合に使い、元のページのように見せる必要がある場合には使わない。

段をチャットボットやテキストボックスに貼り付けるのは避ける。 すべてのページで、順序、キャプション、脚注を手作業で再構築する責任が生じる。私たちの表は、始める前からその順序がどれほど簡単に崩れるかを示している。

同じ問題が数式、引用、参考文献と組み合わさる学術論文については、研究論文翻訳ワークフローに従うこと。すべてのPDFタイプにわたる一般的なレイアウト保持プロセスについては、形式を保ちながらPDFを翻訳する方法を参照。

ステップ3:翻訳された段を確認する

複数段の翻訳は、ざっと目を通すだけでは見逃す箇所で失敗する。ステップ1でテストしたすべてのページタイプで、次の5箇所を確認すること:

  1. 段組みの切れ目。 左段の最後の文と右段の最初の文を読んでください。論旨は続いているはずで、別の段落に飛んではいけません。
  2. キャプションと図。 すべてのキャプションは翻訳されたうえで、それぞれの図の下に収まっているべきで、本文中に流れ込んでいてはいけません。
  3. 全幅の要素。 両方の段にまたがる見出し、注記、引き出し引用は、やはり両段にまたがっているべきで、中途半端な二つの文に分割されてはいけません。
  4. 脚注と柱見出し。 本文中の脚注記号はページ下部の注と一致しているべきで、ページヘッダーが段落の途中に現れてはいけません。
  5. 狭い段でのあふれ。 翻訳されたテキストは原文より長くなることがよくあります。W3Cの翻訳におけるテキストサイズに関するガイダンスでは、70文字を超える英語原文をヨーロッパ言語に翻訳すると長さが約130%になるとのIBMの数値を引用しており、短い文字列ではさらに増加幅が大きくなります。狭い段ではその余分なテキストのための余地がほとんどないため、切り取られた行、縮小された文字、図に重なったテキストを探してください。見出しと表のセルがあふれやすい箇所です。

レビューにはバイリンガルファイルが役立ちますが、そのレイアウトが重要です。原文と翻訳を同じページに置くと、もともと狭い段に二つの言語を押し込むことになります。BookTranslatorの標準PDF翻訳(OCRモードオフ)では、バイリンガルPDFに同じページとページを分けるの二つのレイアウトがあります。段組み文書では「ページを分ける」を選んでください。各原文ページの後に翻訳ページが続くため、すべての段が元の幅を保ちます。翻訳のみのバージョンも引き続きダウンロードできます。残りのファイルレベルのチェックについては、PDF翻訳QAチェックリストで扱っています。

翻訳されたPDFがスクリーンリーダーでも動作する必要がある場合、視覚的な順序だけでは十分ではありません。タグ付きの読み上げ順序は別途確認が必要です。W3Cは、タグ付きPDFの読み上げ順序は「主に文書要素のタグ順序によって決定される」と述べています(W3C PDF3)。翻訳PDFのアクセシビリティに関するガイドで、そのテスト方法を紹介しています。

このガイドが主張しないこと

  • ツールのランキングではありません。 7つの抽出ツールは、一般的で再実行が容易であるという理由で選ばれました。それぞれが少なくとも3つのファイルのうち1つで失敗しており、別のテストファイルを使えば失敗するツールが変わる可能性があります。
  • 翻訳製品はテストしていません。 これらのファイルでBookTranslator、DeepL、Google Translate、その他の翻訳ツールを実行したわけではありません。上記の製品説明は、このテストではなくBookTranslatorの現在の製品コピーに基づいています。
  • 1ページは文書ではありません。 実際のファイルはページデザインが混在しているため、少なくとも2種類のページを確認してください。
  • タグ付きPDFは異なる動作をする可能性があります。 当社のフィクスチャはタグなしです。適切にタグ付けされたPDFは、一部のツールが利用する明示的な読み上げ順序を持っています。

それでも実用的な原則は変わりません。翻訳する前に、PDFがどのように読まれるかを確認してください。順序が正しければ、ファイルを翻訳して段を確認します。間違っていれば、翻訳設定ではなくワークフローを変えてください。

関連記事

読む順序を崩さずに段組みPDFを翻訳する方法