PDF を検証
PDFの構造エラーを調べるには
PDFを読み取り、構造上の問題をテキストレポートにまとめます。元のファイルは変更せず、結果を画面で確認、コピー、ダウンロードできます。
料金: 無料で利用できます。ファイルサイズと利用回数には上限があります。
PDFを検証する手順
PDFをアップロードする
「PDFを選択」「PDFをアップロード」を押すか、プレビューにファイルをドロップします。上限は200 MBです。他のツールで使ったPDFは「アップロード」から選べます。
対象を確認する
「元PDF」にファイル名とサイズ、プレビューにページが表示されます。プレビューで表示できないPDFも検証の対象にできます。
検証を実行する
「PDF を検証」を押します。選ぶ設定はありません。サーバーで検証され、完了するとプレビュー部分にレポートが表示されます。
最終行を読む
validation okなら構造エラーは検出されていません。それ以外は問題を示す行です。代表的なメッセージは下で説明します。レポートをコピー・保存する
「コピー」で問い合わせなどに貼り付けられます。「レポートをダウンロード」で.txtファイルを保存できます。元のPDFはそのままです。
レポートの読み方
レポートはオープンソースのPDFライブラリpdfcpuが出力するテキストです。validating(mode=relaxed)で始まる行が検証モード、最終行が結果を示します。他の行は読み取り中の注記や案内です。
validation ok
構造エラーは見つかりませんでした。オブジェクト、相互参照データ、必須項目が、relaxedモードで許容される範囲のPDF仕様に沿っています。
validation error (obj#:…): …
読み取れましたが、規則に合わない部分があります。末尾が問題の内容です。dict=pageDict required entry=MediaBox missingはページサイズの欠落、validatePages: page tree invalidはページ数と実体の不一致など、validateFontDict: missing Subtypeはフォント定義の不備を示します。
Read: xRefTable failed: …
文書構造を解決できませんでした。各オブジェクトの開始位置を記す相互参照データが壊れているか、オブジェクトが途中で切れている可能性があります。no matching %%EOF for startxrefは終端マーカーが見つからない意味です。ファイル全体が届いたか確認し、元の場所から再取得します。
pdfcpu skipped:とpdfcpu repaired:
読み取り中の注記です。skipped: missing obj #12は参照先の位置にオブジェクトがないこと、repaired:は検証を続けるためメモリー上で補正したことを示します。missing objが連続する場合、転送時の改行変更などで索引全体と実際の位置がずれている可能性があります。
please provide the correct password
開くためのパスワードが設定されています。パスワードが分かる場合はPDFのロック解除後のコピーを検証します。印刷・コピーの制限だけならパスワードなしで検証できます。
Catalog: missing root dict
ページを参照する文書カタログが見つかりません。PDFにはこのルートオブジェクトが必要です。先頭だけPDFらしい別のデータか、構造が大きく壊れたファイルの可能性があります。
PDF 2.0の案内
PDF 2.0を宣言するファイルには、pdfcpuの対応が基本的な範囲であるという枠付き案内が出ます。エラーではありません。その下の結果行を確認します。
検証する範囲と対象外の項目
PDFはページ、フォント、画像など番号付きのオブジェクトから成ります。相互参照表が開始位置を記し、トレーラーが文書カタログを参照します。これらをISO 32000-1:2008(PDF 1.7)に照らして検証し、PDF 2.0も基本的な範囲で調べます。
検証はrelaxedモードです。strictと同じ規則を基に、カタログの/Type欠落やストリームの/Length不一致など、よくある仕様上のずれを許容します。画面でモードを選ぶ必要はありません。
ページ内容や画像データをデコードしないため、画像や描画が壊れていても通る場合があります。PDF/A、PDF/X、アクセシビリティへの適合、電子署名、フォントの埋め込み、リンク先の到達性も調べません。必要な規格に対応する専用のプリフライト検査を使ってください。
問題があれば、作成元のソフトで再保存・再エクスポートするか、不完全なダウンロードを取り直します。印刷してPDFを作り直す方法もありますが、入力欄は固定され、リンクやしおりを失う場合があります。
対応形式と制限
- 入力
- PDF。開く際のパスワードは先に解除します。印刷・コピーの制限のみなら検証できます。
- 出力
- 画面上のテキストレポート。「コピー」と「レポートをダウンロード」(.txt)に対応します。
- 元のPDF
- 読み取りのみです。変更せず、新しいPDFも作りません。
- ファイルサイズ上限
- 200 MB
- 1回のファイル数
- PDF1件
- 設定
- ありません。常にrelaxedモードでPDF 1.7の規則を検証し、PDF 2.0も基本的に対応します。
- 処理
- サーバーのpdfcpuで実行します。外部サービスやAIは使いません。ジョブの実行上限は15分です。
- 透かし
- 追加しません。
- 保存期間
- アップロードとレポートはゲスト48時間、無料アカウント30日で自動削除されます。有料プランはより長く保存できます。
よくある質問
普通に開けるPDFでエラーが出るのはなぜですか?
ビューアーは壊れた相互参照表を再構成したり、不足項目を読み飛ばしたりする場合があります。検証は問題を報告するため、印刷システムや文書保存システム、他のPDFライブラリでは同じファイルが拒否されることもあります。重要な文書は作成元から再エクスポートしてください。
validation okでもページが崩れるのはなぜですか?
検証するのは構造で、見た目ではありません。画像や描画データを展開しないため、その破損を検出できない場合があります。ビューアーで各ページを確認し、実際に使用するソフトでも開いてください。
エラーが1件しか出ない理由は?
最初に規則違反を検出したところで停止します。再エクスポートなどでその問題を解消してから検証し直すと、次の問題があれば表示されます。
検証するとPDFは修復・変更されますか?
読み取りだけなので、「アップロード」にあるPDFは変わりません。作られるのはテキストレポートのみです。検証後、PDF情報でバージョンやページ数などを確認できます。
外部サービスに送信されますか?
検証はサーバー上のpdfcpuで行い、AIや第三者サービスには送りません。アップロードとレポートは上記の保存期間後に自動削除されます。