BookTranslator
BookTranslator

PDFのコピペで文字化け・誤字?まずはテキストレイヤーを診断しよう

PDFの見た目は正しくても、コピーすると文字や数字が間違って抽出されることがあります。4つのサンプルファイルを使ってテキストレイヤーの問題を特定し、検証可能な修復方法を選びましょう。

BookTranslator

BookTranslator Team

20 min read

PDFの見た目は正しいのに貼り付けたテキストが間違っている場合は、コピーしたテキストをそのまま情報源として使うのをやめましょう。まずは、短い一節(名前、文、数字)と目に見えるページを比較します。次のステップは、ファイルに抽出可能なテキストがないか、文字マッピングが間違っているか、不正確な隠しOCRレイヤーがあるか、または読み順の問題があるかによって異なります。すべてのケースにおいて、ドキュメント全体に対して最初からOCRを実行することが正しい初手とは限りません。

最も危険なエラーは、意味不明な文字化けではありません。それはもっともらしいテキストです。たとえば、ページには 18 notebooks と書かれているのに、抽出されたテキストは 13 notebooksとなっているようなケースです。他人のプライベートなドキュメントを使用することなく、その違いを確認できるように、4つのダウンロード可能なPDFを作成しました。

まずは簡単なコピー&比較チェックから始めましょう

元のファイルは変更せず、作業用コピーを開きます。短い選択範囲を1つプレーンテキストエディタに貼り付け、ページと1文字ずつ比較します。別のページや、可能であれば2つ目のPDFリーダーでも繰り返します。これは診断のためのチェックであり、ドキュメントの残りの部分がすべて正しいという証明ではありません。

現象調査すべき点最初にすべき有用なアクション
何も選択できない、または貼り付けが空になるページに画像しか含まれていない可能性があるリーダーがテキストではなくページ画像をテキストとして選択していないか確認する
ページ上の見た目は普通なのに、文字が一貫して別の文字に変わる文字エンコーディングまたは抽出マッピング別のリーダーの出力を比較する。オリジナルソースファイルまたはより良いエクスポートを探す
ほとんどの単語は読めるが、名前や数字が間違っている古いOCRを含む、不正確なテキストレイヤー抽出された一節を目に見えるスキャン画像と比較する
文字は正しいが、段組み、キャプション、脚注の順序が間違って表示されるレイアウトおよび読み順の抽出単一の列や段落を個別にテストする
コピーが無効化されているドキュメントの権限またはリーダーの動作ファイルの権限を確認し、利用可能なコピーを元の作成者に依頼する

これらは手がかりであり、1つの兆候からすべてのPDFの内部構造を特定する方法ではありません。Adobeの コンテンツ再利用に関するガイダンス は、画像のみのコンテンツとコピー制限を区別しています。どちらも自動的に破損したテキストレイヤーとして扱うべきではありません。 pypdf抽出ガイド では、画像、テキスト抽出、および表やスペーシングに関する困難が個別に説明されています。

長大な書籍やレポートの場合は、問題が発生するPDFのページ番号を記録してください。綺麗な表紙があったとしても、付録、スキャンされた差し込みページ、または2段組みの章が正しくコピーできるかどうかはわかりません。

4つのPDF:ページの表示内容と抽出結果の比較

私たちのテストページには、以下を含む4つの元の行が含まれています:

アーカイブには18冊のノートブックが含まれています。

アイテムB-204は5月6日に到着しました。

私たちは通常のデジタルPDFを1つ作成し、意図的に3つの代替品を構築しました。次に、Popplerとpypdfを使用してそれらのテキストを抽出しました。両方の抽出ツールが、このテスト内の各ファイルに対して同じテキストを返しました。

PDFをダウンロード構築方法実際の抽出結果
正しいデジタルテキスト埋め込みフォントを持つ通常の表示テキスト18 notebooks; B-204; 6 May
間違ったUnicodeマッピング表示されるグリフを変更せずに、抽出マッピングを変更した13 notebooks;いくつかの小文字の a 文字が次のように変化した: x
隠しテキストの間違いページ画像の上に意図的に間違った不可視テキストを配置した13 notebooks; B-2O4; 8 May
画像のみのページテキストレイヤーのない同じページ画像を使用した空のテキスト出力

一見普通のデジタルページでもコピー結果がおかしくなることがある

私たちの比較において、最初の2つのPDFは同一のピクセルでレンダリングされたにもかかわらず、抽出されたテキストは異なりました。2番目のファイルでは、意図的に次を変更しました: ToUnicode マッピング: 保存された文字コードをUnicodeテキストにマッピングするために使用される情報。視覚的な数字はそのまま 8でしたが、抽出結果は 3になりました。 pypdf CMap documentation は、このマッピングの仕組みを示しています。

これは障害メカニズムの1つを示したものであり、文字化けしたすべてのPDFに同じ欠陥があるという主張ではありません。単一の ToUnicode エントリーの欠落が私たちの診断結果ではなく、手動でのマッピングの編集は、一般の閲覧者向けの一般的な修復方法ではありません。

検索可能なスキャンには誤った単語が含まれている可能性がある

3番目と4番目のPDFも互いに同一にレンダリングされました。一方には誤った不可視テキストが含まれており、もう一方には何も含まれていませんでした。3番目のファイルでは、抽出によって数量と日付の両方がサイレントに変更されました。コード B-2O4 には文字が含まれていました O、数字ではない 0 画像に示されている。

私たちは、隠しテキストレイヤーに含まれうるミスマッチの種類を表現するために、それらのエラーを自ら挿入しました。OCRエンジンは not それらを生成しました。4番目のファイルは正反対の状態を示しています。つまり、テキスト抽出機能が何も返すものがない、読み取り可能なページ画像です。これはpypdfの文書化された制限と一致しています。既存のPDFテキストを抽出し、画像内の単語を認識するわけではありません。

このテストが証明すること、そして証明しないこと

2026年9月10日、Poppler 26.08.0とpypdf 6.10.0を使用して4つの1ページファイルを検証しました。視覚的な比較には144 dpiのPopplerを使用しました。ピクセル単位での一致は、 2つのペア内では確認されましたが、4つのファイルすべてではありません。画像ベースのペアは追加のレンダリング工程を経ているためです。

これは管理されたデモンストレーションであり、OCR精度のベンチマークではありません。多言語認識、複雑なレイアウト、Acrobatによる修復、OCRmyPDFによる修復、またはBookTranslatorへのアップロードをテストするものではありません。これらは既知の欠陥を持つ構成例であり、ブラインド評価ではありません。

これらの テキストの生データとピクセルの結果, 再現手順、および ジェネレーター は、ファイルと共に提供されています。これらには、オープンフォントライセンスが付属する未改変のNoto Sansフォントが使用されています。

最も影響の少ない次のステップを選択する

以下の修復ルートは、公式ドキュメントと実用的な診断に基づいています。これらは 4つのファイルを用いた実験による修復結果ではありません。作業はコピーに対して行い、重要なファイルを置き換える前に出力を検証してください。

元のドキュメントがある場合は、まず再エクスポートを試す

元のワープロ、出版、または組版ファイルから新しく作成したPDFは、最初の候補として有用です。失敗した箇所を正確に比較してください。ファイル名が新しくなったり、エクスポートが成功したりしたからといって、テキストが正しくなったと思い込まないでください。

アーカイブや出版社から入手した資料については、テキストを含む別のバージョンが存在するか確認してください。版とページの参照を一致させておく必要があります。別の版のより鮮明なファイルでは、必要な箇所が維持されていない可能性があります。

スキャンに少数の認識エラーがある場合は、それらの単語を確認する

Acrobatでは、 スキャンとOCR → 認識されたテキストを修正の下にワークフローが記載されています。これにより、フラグが立てられた疑わしい単語をスキャン画像と照らし合わせて確認し、認識されたテキストを修正できます。 Adobeの最新の修正手順 に従って、お使いのバージョンのインターフェースで操作してください。

「疑わしい単語」のリストが空であることを、完全性のテストとして使用しないでください。引用や翻訳を行う名前、日付、識別子、数量は、独自に比較してください。私たちが意図的に誤らせた 13 notebooks の例は、読み取り可能な出力だけでは不十分である理由を示しています。

隠しテキストの大半が誤っている場合は、やり直し(redo)と強制(force)を区別してください。

コマンドラインツールを使用する読者のために、OCRmyPDFはすでにテキストが含まれているページに対して異なる処理経路をドキュメント化しています:

  • --redo-ocr は、既存の非印刷OCRテキストを削除し、印刷可能なテキストをOCRから除外しながら再度認識を行います。
  • --skip-text は、テキストが含まれるページをスキップします。これは既存の誤ったテキストレイヤーの修復にはなりません。
  • --force-ocr は、ページコンテンツをラスタライズし、生成された画像に対してOCRを実行します。

これらの動作については、 OCRmyPDFの既存テキストエラーに関するドキュメントに記載されています。バージョン17では、同等の選択肢が --modeからも利用可能であり、古いフラグはエイリアスとして残ります。

コストや例外も存在します。やり直し(redo)はすべての過去のOCR配置を特定できるわけではなく、一部のファイルでは技術的に印刷可能なテキストの上に不透明な画像が配置されています。強制(force)は、印刷可能なテキストやベクターコンテンツをピクセルに変換し、インタラクティブなコンテンツを平坦化します。また、やり直しと強制は、既存の構造ツリーを再構築するのではなく破棄します。どちらかを選択する前に、 OCRmyPDFの詳細ドキュメント を確認してください。

したがって、修復された抽出物はアクセシビリティパスではありません。ドキュメントにの見出し、読み上げ順序、またはアクセシブルな図が必要な場合は、別の 翻訳済みPDFのアクセシビリティチェック.

ページや言語が異なる場合は、1つの設定がすべてに適合すると仮定しないでください。

どのページにすでに信頼性の高いデジタルテキストが含まれており、どのページに認識が必要かをリストアップします。OCRを設定する前に、影響を受けるページの言語を確認してください。当社の 混合言語PDF OCRガイド では言語選択について解説しています。これは古いテキストレイヤーが誤っているかどうかを判断するのとは異なる決定です。

テキストレイヤーがまったく存在しない場合は、 スキャン済みPDFのワークフローに移行してください。別のプレーンテキスト抽出ツールを繰り返し試しても、pypdfが画像内の単語を認識できるようにはなりません。

置換テキストを使用する前に検証する

次の項目を使用します: ダウンロード可能なテキストレイヤーチェックシート を使用すると、目に見える参照情報、以前の抽出結果、置換後の抽出結果を並べて比較できます。まず既知の不具合箇所から始め、次に別の段落や、大きく異なるページレイアウトをテストします。

  1. 単語: 固有名詞や馴染みのない用語を1文字ずつ比較します。
  2. 数値: 数量、小数点、日付、および次のような識別子を確認します: B-204.
  3. 順序: 改行をまたいで段落全体を読み通し、列や近くのキャプションを個別に確認します。
  4. 網羅性: 必要なページやパッセージが漏れていないことを確認します。
  5. ファイルの挙動: 保存した置換後ファイルを再度開き、コピーテストを繰り返します。しおり、リンク、アクセシブルな構造に依存している場合は、それらも確認してください。

選択したパッセージの合格は、それらのパッセージに関する証拠を示すものであり、ファイル全体の品質を保証するものではありません。引用や馴染みのない言語を修正する場合は特に、元のページ画像を基準として保持してください。

ソースを信頼できるようになってから翻訳する

目的が段落の引用やメモの作成である場合、検証済みの抽出結果で十分な場合があります。その作業を解決するために翻訳サービスを使う必要はありません。

ドキュメント全体を別の言語で読む必要がある場合は、検証済みのファイルを出発点として使用します: PDFの翻訳. BookTranslatorのOCRモードは、認識されたコンテンツから翻訳されたPDFを再構築しますが、既存のテキストレイヤーの修復や、元のページレイアウトの完全な再現を保証するものではありません。

翻訳ステップの間も参照ページを保持してください。ここで確認したのと同じ数量や識別子は、 最終的なPDF翻訳のQAパスに含まれます。流暢な翻訳であるということそれ自体では、そのソースが次のものであるべきだったかどうかを判断できません: 18 ではなく 13.

関連記事