損壊したPDFの修復方法
損壊したPDFは内部構造に損傷があります — 交差参照テーブル、ヘッダー、オブジェクト ストリーム、またはトレーラーが欠落または不整合で、リーダーがページを見つけられません。 修復とは残存するオブジェクトから構造を再構築することです。うまくいくこともあれば、 損傷がひどすぎてページが失われることもあります。このガイドは4種類の損傷、損傷ファイルを 再構築できるローカルツール、修復が不可能な場合の正直なフォールバックを説明します。
4種類のPDF損傷
1. ヘッダー損傷
PDFの最初の行は%PDF-1.x(xはバージョン)です。このヘッダーが欠落または 損傷していると、ビューアはPDFとして識別できないため開けません。これは最も簡単な損傷の 修正です:テキストエディタでファイルを開き、先頭にヘッダー行%PDF-1.7を追加。 保存して開き直してください。
2. 交差参照(xref)テーブル損傷
xrefテーブルはPDFのインデックスです — 各オブジェクト(ページ、フォント、画像)が ファイル内のどこにあるかをビューアに伝えます。xrefが欠落または誤ったオフセットを指すと、 ビューアはページを見つけられません。これは最も一般的な損傷形式で、通常はダウンロードの 切り捨てや書き込み完了前のクラッシュによって発生します。
修正: ghostscript (gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in.pdf) またはAdobe Acrobat Preflightでxrefを再構築。両ツールはファイル内のオブジェクトを スキャンして新しいxrefを書き込みます。オブジェクト自体が無傷なら、ファイルは完全に修復されます。
3. オブジェクトストリーム損傷
モダンPDFは領域を節約するため複数のオブジェクトを圧縮オブジェクトストリームに詰め込みます。 ストリームが損傷すると、内部のオブジェクトは回復不能 — 失われます。症状には開くが 空白ページや欠落フォントを表示するファイルが含まれます。修復ツールはxrefを再構築 できますが、正しく書き込まれなかったオブジェクトを復活させることはできません。
修正: ghostscriptまたはAcrobat Preflightを試す。修復後もページが 空白の場合、それらのページのオブジェクトは元の損傷で失われました。バックアップから 復元またはソースアプリから再エクスポート。
4. トレーラー損傷
トレーラーはファイル末尾の小さなブロックで、xrefとルートカタログを指します。 有効なトレーラーのないファイルは、全オブジェクトが無傷でも読めません。これは通常、 書き込みが中断されたときに発生 — ファイルが%%EOFで終わらず、 オブジェクトデータの途中で突然終わります。
修正: ghostscriptとAcrobatは欠落トレーラーを再構築できることが多い。 ファイルがオブジェクト途中で終わる場合、まず損傷オブジェクトを切り捨ててから再構築 する必要があるかもしれません。qpdf --checkコマンドはどの構造要素が 欠落しているかを報告します。
ローカル修復ツール
以下のツールはすべてマシン上で実行されます。どれもドキュメントをアップロードしません。 それは重要です:損壊ファイルには読み取り可能な機密コンテンツがまだ含まれている可能性が あり、「無料オンラインPDF修復」サービスにアップロードすると、何が残存したかを知る前に そのコンテンツを他人のサーバーに送ることになります。
1. ghostscript(無料、クロスプラットフォーム、コマンドライン)
最も信頼できる無料修復ツール。ファイルを再読み込みし、xrefとトレーラーを再構築し、 クリーンなコピーを書き込みます。Windowsの場合:
gswin64c -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in.pdf
macOSとLinuxではgswin64cをgsに置き換え。 ghostscriptは損傷したオブジェクトストリームを修復できませんが、ほとんどのxrefと トレーラー損傷を修正します。
2. Adobe Acrobat Pro(有料、Preflight)
Acrobat ProのPreflight機能には「PDFを修復」プロファイルがあり、xrefを再構築し、 欠落フォントを再埋め込みし、壊れた注釈をフラット化します。ファイルを開き、ツール > 印刷工程 > Preflightで修復プロファイルを実行。 Acrobatは最も能力のある修復ツールですが無料ではありません。
3. PDF24 Creator(無料、Windows)
PDF24にはghostscriptをGUIでラップした「PDFを修復」ツールが含まれます。PDF24を開き、PDFを修復を選択、ファイルをドロップして結果を保存。Windowsでコマンドラインを 使いたくない場合に便利。
4. Recovery Toolbox for PDF(有料、Windows)
ghostscriptが修正できないひどい損傷を処理する専用商用修復ツール。ファイルを バイト単位でスキャンして認識可能なオブジェクトシグネチャを探し、再構築できるものを 再構築します。無料ツールが失敗し、ファイルがライセンス費用を正当化するほど重要な場合 のみ使用。
ステップバイステップ:ghostscriptで修復
- ghostscriptをインストール。 Windowsではghostscript.comからダウンロード。 macOSでは
brew install ghostscript。Linuxではパッケージマネージャーを使用。 - ターミナルを開く。 損壊したPDFを含むフォルダに移動。
- 修復コマンドを実行。
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=repaired.pdf corrupted.pdf - 結果を確認。
repaired.pdfをAcrobat Readerまたはプレビューで開く。 開いて全ページが表示されれば修復成功。 - ページがまだ欠落している場合、 元のオブジェクトストリームが損傷していました。 バックアップから復元またはソースアプリから再エクスポート。
フォールバック:IXPDFで無損傷ページを抽出
完全修復が失敗した場合、無損傷のページを回復できることがあります。ページ抽出を開き、損壊ファイルをドロップ、 ページ1の抽出を試す。成功したら、範囲(1〜5、6〜10)を試して損傷セクションに 到達するまで続ける。IXPDFはブラウザ内でローカルにファイルを読み取り — アップロードなし — 解析できるページから新しいPDFを書き込みます。損傷領域のページは失敗します。残りは回復されます。
よくある間違い
- 損壊ファイルをオンライン修復サービスにアップロード。ファイルには読み取り可能な機密コンテンツがまだ含まれている可能性。 ローカルツールを使用。
- 唯一のコピーを上書き。修復ファイルは常に新しい名前で書き込む。修復を確認するまで損壊したオリジナルを保持。
- 修復が失われたコンテントを復元すると期待。オブジェクトストリームが損傷した場合、コンテントは失われています。 修復は構造を再構築します。失われたバイトを復活させることはできません。
- パスワード保護ファイルを修復しようとする。暗号化は損傷ではありません。まず(パスワードで)復号化し、必要なら修復。