PDFが開かないとき、画面に表示されるメッセージは説明というより謝罪のように読めます。「この文書を開くときにエラーが発生しました。ファイルが破損しているため修復できませんでした」という文面は、何が壊れているのか、中の文書はまだ救えるのかについて、ほとんど何も教えてくれません。
しかし見た目より遥かに情報量があります。リーダーごとにPDFを検証する順序が異なり、諦める地点も異なるため、不具合の言い回しからファイルのどの部分に問題があるのかを絞り込めるのです。ヘッダーなのか、索引なのか、個別のオブジェクトなのか、それとも暗号化層なのか。本ガイドでは、目にする可能性の高いメッセージを、それを生んだ不具合と対応づけます。
同じファイルで異なるエラーが出る理由
PDFはページを番号付きのオブジェクトとして格納し、各オブジェクトのバイト位置をファイル末尾の参照表に記録します。これが相互参照テーブル、すなわち xref です。PDFを開くとは、末尾へ飛び、この表を読み、それを使って1ページ目を見つけることに他なりません。うまくいかないことのほとんどは、この一連の流れの中で起きます。
リーダーによって、その手順にどこまで厳格に従うかが違います。Adobe Acrobat は構造をきちんと検証し、基準を満たさないファイルは拒否します。一方 Chrome や Firefox は、ページらしきものを求めてファイル全体を走査し、壊れた索引を黙って迂回します。この違いこそ、1つのファイルが4台の端末で4通りのメッセージを出す理由であり、たまたま使っているリーダーが変えるのは文面だけで、根本の不具合ではないという理由でもあります。
Adobe Acrobat と Reader のエラー
Acrobat はどのリーダーよりも具体的なメッセージを出します。融通を利かせようとするのではなく、ファイルを仕様と突き合わせて検証する唯一の存在だからです。よく見かけるのは次のものです。
| メッセージ | 実際に何が失敗したのか | どうするか |
|---|---|---|
| 「この文書を開くときにエラーが発生しました。ファイルが破損しているため修復できませんでした。」 | Acrobat 自身の復旧処理が壊れた xref に対して走り、失敗した | ページツリーを一から再構築するツールで修復する |
| 「ファイルがサポートされていない形式であるか、破損しています。」 | ファイルが %PDF- で始まっていない、またはPDFではない | 修復する前に先頭バイトを確認する(下記参照) |
| 「dict オブジェクトが必要です。」/「オブジェクト番号が無効です。」 | ファイル内の1つ以上のオブジェクトストリームが壊れている | 修復可能。ただし損傷したページは書式を失うことがある |
| 「この文書の読み込み中に問題が発生しました (14)。」 | フォントまたは埋め込みリソースをデコードできない | 修復する。壊れたフォントは標準フォントに置換される |
| 「この文書の読み込み中に問題が発生しました (109)。」 | コンテンツストリームの損傷。同期中に編集されたファイルに多い | 修復すれば無傷のページは救える |
| 「この文書は保護されています。パスワードを入力してください。」 | 何も壊れていない。ファイルが暗号化されているだけ | 修復の問題ではない。パスワードが必要 |
| ネットワークドライブでの「アクセスが拒否されました」 | PDFではなく、権限またはファイルロックの問題 | ファイルをローカルにコピーし、コピーを開く |
番号付きのエラー——14、109、110、131——は同じ系統として扱うのが妥当です。いずれも、Acrobat が特定のオブジェクトを読み始められる程度までファイルを解析したうえで、解釈できない何かに突き当たったことを意味します。実際の挙動は同じで、構造は再構築でき、文書がどれだけ残るかは影響を受けたオブジェクトの数次第です。
Chrome、Edge、Firefox のエラー
ブラウザは独自のPDFエンジンを使い、はるかに寛容です。そのためブラウザのエラーは、通常 Acrobat のエラーよりも深刻な事態を意味します。メッセージがより漠然としているのも、エンジンがファイルを診断しようとしているのではなく、描画しようとして諦めているからです。
| メッセージ | 実際に何が失敗したのか | どうするか |
|---|---|---|
| 「PDF ドキュメントの読み込みに失敗しました。」 | エンジンがヘッダーを解析できず、使えるページオブジェクトも見つけられなかった | 本当の構造的損傷。修復する |
| 「ファイルをプレビューできませんでした」/ 延々と回り続けるビューア | ファイルが途中で切れており、来ないバイトを待ち続けている | まず再ダウンロードし、それでも直らなければ修復する |
| 灰色の空白領域、メッセージなし | 文書は開いたが何も描画されなかった。フォントかレイヤーの問題 | 表示の問題であり、開く問題ではない |
| 開かずにダウンロードされる | サーバーが誤ったコンテンツタイプを返した、またはPDFではない | ファイルの先頭バイトを確認する |
| 「予期しないエラーのため、このファイルを開けません。」 | 解析失敗をEdge独自の文面で包んだもの | 「読み込みに失敗」と同じ扱いでよい |
延々と回り続けるビューアは、最も誤解されやすいケースです。いつまでも読み込みが終わらないビューアは遅いのではなく、たいていは途中で切れたファイルを待っています。破損と断じる前に、ファイルサイズを元のものと比べてください。80 %まで進んだダウンロードなら、PDF修復で索引を作り直すことで、通常およそ80 %のページを無傷のまま取り出せます。
プレビュー、モバイル、メールアプリ
Apple のプレビュー、iOS のファイルアプリ、Android のビューア、そして Gmail、Outlook、WhatsApp に組み込まれたプレビュー機能は、いずれも最も情報量の乏しい部類です。原因が何であれ一つの一般的なメッセージを出しがちで、診断材料としては貧弱ですが、ある一点では有用です。デスクトップのリーダーとは違う壊れ方をするため、何ができて何ができないかが問題の範囲を絞ってくれます。
- 「ファイルが破損しているようです」(プレビュー)。プレビューは比較的厳格です。Chrome なら開ける xref の壊れたファイルを拒否するため、このメッセージだけでは復旧不可能とは言えません。
- Gmail や Outlook での「PDF を表示できません」。ウェブのプレビュー機能にはサイズと複雑さの上限があり、ファイルがそれを超えたということです。問題があると決めつける前に、添付ファイルをダウンロードしてローカルで開いてください。
- パソコンでは開くのにスマートフォンでは開かない。ほぼ確実にメモリの問題であり、破損ではありません。ノートPCが難なく扱う巨大な、あるいは画像の多い文書で、モバイルリーダーは力尽きます。
- 開いた直後に落ちる。リーダーはファイルを拒否したのではなくクラッシュしたのです。同じメモリの上限に、ほんの一瞬遅れて到達しただけです。
- Android での「サポートされていないファイル形式」。拡張子に反してPDFではないファイルか、ダウンロード後に名前を変えられたファイルであることがほとんどです。
破損ではない4つの不具合
修復ツールに持ち込まれるファイルのうち、相当な割合はそもそも壊れていません。これらを除外するのに1分もかからず、誤った対処を避けられます。
- 壊れているのではなく暗号化されている。パスワードの入力要求はエラーではありません。パスワードが分かっているならファイルは正常です。自分の文書でその保護を変更または解除したいなら、修復ツールではなく PDFロック解除 を使ってください。
- そもそもPDFではない。任意のテキストエディタでファイルを開き、1行目を読んでください。本物のPDFは
%PDF-1.4などで始まります。PKならZIPアーカイブかOffice文書、<!DOCTYPE html>なら文書ではなくエラーページをダウンロードしたということです。 - サイズが0バイト。ファイルマネージャーでサイズを確認してください。空のファイルには復旧すべきものが何もなく、どんなツールでもそれは変えられません。元の入手先、メールの添付、バックアップに戻りましょう。
- リーダーが古すぎる。AES-256 で暗号化された PDF 2.0 のファイルは、おおむね2017年より前のリーダーでは開けず、たいてい「ファイルが破損しています」という紛らわしいメッセージが出ます。リーダーを更新すれば完全に解決します。
開かないPDFを3ステップで修復する
上記4つのケースを除外できたなら、ファイルは本当に損傷しており、構造を再構築する必要があります。ブラウザ上で3ステップ、インストールも登録も不要です。
ファイルをそのままアップロードする
pdfdocshift.com/repair-pdf を開き、ファイルをアップロード領域にドロップします。事前に名前を変えたり、保存し直したり、開いて書き出したりしないでください。いずれの操作も、まだ復旧できる構造を上書きしてしまう恐れがあります。
修復処理に索引を再構築させる
ツールは既存の相互参照テーブルを完全に無視し、有効なPDFオブジェクトを求めてファイル全体を走査し、見つかったものからページツリーを組み直して、新しい索引を書き込みます。読み取れない埋め込みフォントは標準の相当品に置き換えられ、テキストが表示されるようになります。
1ページ目だけで判断しない
結果をダウンロードし、ページ数が想定と合っているか確認したうえで、中ほどの1ページと最終ページを開いてください。ページが崩れているのではなく欠けている場合、そのファイルは途中で切れており、手元にあるものが残った全てです。
修復後のファイルは開くのにページが白紙に見える場合、そもそも索引は問題ではありませんでした。フォント、レイヤー、フォーム文書を扱った PDFが白紙で開く理由 のガイドをご覧ください。問題なく開くものの使い物にならないほど遅い場合は、壊れているのではなくファイルが大きすぎるので、適したツールは PDF圧縮 です。
再発を防ぐには
現実に起きるPDFの損傷は、そのほとんどがごく限られた習慣に行き着きます。そして知ってさえいれば、大半は避けられます。
- クラウド同期が終わってからファイルを開く。Dropbox、OneDrive、Google ドライブがアップロード中のPDFに上書き保存すると、半分が古く半分が新しいファイルが確実に出来上がります。「昨日は開けたのに」の最も一般的な原因です。
- 大きな転送の後はサイズを確認する。中断したダウンロードやネットワーク越しのコピーは、途中で切れたファイルの主な発生源です。サイズを比べればすぐに分かります。
- リムーバブルメディアは正しく取り外す。書き込みが終わる前にUSBメモリを抜くと、ファイルの末尾が書かれないまま残ります。まさに切断のケースです。
- 不慣れなメールシステムで送る前にPDFをZIPにまとめる。ごく一部の古いサーバーは、今なおバイナリの添付ファイルにテキスト用のエンコードを適用し、転送中に壊してしまいます。
- 損傷した元のファイルを残しておく。修復はアップロードされたファイルを変更せず新しいファイルを書き出しますが、修復がうまくいったように見えると、壊れた方をつい削除してしまいがちです。後からページの欠落に気づいたとき、2度目の試行が頼れるのはその元ファイルだけです。
よくある質問
検証の仕方が違うからです。Chrome はページらしきものを求めてファイルを走査し、見つかったものを描画します。壊れた相互参照テーブルも、知らせないまま迂回します。一方 Acrobat は構造をPDF仕様と突き合わせ、基準を満たさないファイルを拒否します。ブラウザで開けるなら、ページの中身は無傷で壊れているのは索引だけであり、これは存在する損傷の中で最も修復しやすい形です。
Acrobat が構造上の問題を検出し、自前の復旧処理を実行したものの、その処理が成功しなかったという意味です。文書が復旧不能だという意味ではありません。Acrobat の復旧は保守的で、既存の索引を出発点にします。その索引を完全に無視し、オブジェクトを求めてファイルを走査してページツリーを作り直すツールなら、Acrobat が諦めた場面でもしばしば成功します。
まず違います。破損は一貫しており、壊れたファイルはどこでも失敗します。ある端末で開けて別の端末で開けないファイルは、資源の上限にぶつかっています。多くは大きな文書や画像の多い文書でのメモリ、あるいはメールアプリ内プレビューのサイズ制限です。ファイルを圧縮するか、小さな文書に分割すれば解決します。修復しても解決しません。
任意のテキストエディタで開き、1行目を見てください。本物のPDFは %PDF- という文字で始まり、続いてバージョン番号が入ります。ファイルが PK で始まっていれば、拡張子を間違えたZIPアーカイブかOffice文書です。 で始まっていれば、文書ではなくエラーページをダウンロードしたということで、対処法は入手元から取得し直すことです。
違います。そして両者を混同すると多くの時間を無駄にします。パスワードの要求は、ファイルが無傷で暗号化されていることを意味します。リーダーによっては表現が拙く不具合のように読めますが、修復すべきものは何もありません。自分の文書でパスワードが手元にあるなら、PDFロック解除で保護を外せます。パスワードがないなら、どんな修復ツールでも取り戻すことはできません。
通常は変わりません。修復はファイルの索引とページツリーを作り直す一方、ページの内容はそのまま複製します。目に見える唯一の例外はフォントです。埋め込みフォントをデコードできない場合、修復は標準フォントで置き換えるため、改行位置や字間がわずかにずれることがあります。文字そのものとページの順序は影響を受けません。