Acrobat で PDF を開いた時に「このページにはエラーがあります。Acrobat はページを正しく表示できない場合があります。PDF 文書の作成者に連絡して、問題を解決してください。」と出た時の対処法

私は、業務上で Field Reports を使っています。

今回の事象は Field Reports に起因しているのかもしれませんが、調査した条件だけ見ると他のソフトウェアを使っていても発生しそうだなぁーと思ったので、起きた事象と発生条件、その対処法を書いておきます。

エラーとの邂逅

ある日、Acrobat で PDF を開くとエラーが発生しました。

開いたのは、業務で開発しているシステムで、Field Reports を使って出力された PDF ファイルです。

テンプレートとなる PDF ファイルにフォームを作成し、PHP のコード上で値を埋め込んで出力する、という至って変わったことをしていないはずだったのですが、出力した PDF ファイルを Acrobat で開いてみると、見慣れない以下のエラーが発生。

このページにはエラーがあります。Acrobat はページを正しく表示できない場合があります。PDF 文書の作成者に連絡して、問題を解決してください。
このページにはエラーがあります。Acrobat はページを正しく表示できない場合があります。PDF 文書の作成者に連絡して、問題を解決してください。

どうやら出力したファイルの何かがおかしいみたいです。

エラーの症状

急いで状況を確認すると、以下の通りでした。

  • Acrobat で PDF ファイルを開くと、エラーは出る
  • Google Chrome で PDF ファイルを開くと、エラーなく表示できる
  • Firefox で PDF ファイルを開くと、エラーは出ないが、フォームに入力していたはずの内容が消えている
  • 私以外の環境(同僚の PC)で開いてみたが、全く同じ現象

ブラウザによって内臓の PDF Viewer が異なるのは知っていましたが、どうにも不思議な感じです。

ファイルとして破損しているなら、どのソフトウェアでも同じようにエラーが出るんじゃないかと思いますし、当方の環境に依存している様子もありません。

Acrobat の不具合かと思いきや、Firefox でもうまく表示されないみたいで、どの視点で見ても中途半端にダメダメな感じです。

エラーの発生条件

どうにも不可思議なこの現象。

どうググっても公式見解にたどり着くことが出来なかったので、数時間かけて、不確定ではありますが、状況証拠から発生条件を割り出すことが出来ました。

その条件は以下。

  1. 当該フォームの font-size自動 に設定されている
  2. 当該フォームの padding0 に設定されている
  3. 当該フォームに入力する文字数が多く、フォームの横幅以上だったため、フォントサイズが自動調整される

これらの条件に全て当てはまる時、このエラーが発生しているようでした。

エラーの対処法

この中でもっとも簡単に対処可能そうだった padding1 に設定してみました。

すると、Acrobat でエラーが出ることはなくなり、Firefox でも無事に表示されました。

試していませんが、他の条件を満たさないように変更することでも対策できそうです。

まじかよ。

おわりに

先述のとおり、どうやら padding なしのフォームでフォントサイズを自動調整しなければならない場合に発生するようです。

よほどのことがない限り padding0 に設定することはないと思うので、これからは 0 以外の値を設定する癖をつけようと思います。

一件落着。