プログラミング基礎知識

TCPDF – PDF 出力時に「~のウェブページは一時的に停止しているか、新しいウェブアドレスに移動した可能性があります。」対処方法

TCPDF – PDF 出力時に「~のウェブページは一時的に停止しているか、新しいウェブアドレスに移動した可能性があります。」エラーが表示された場合の対処方法についてご紹介いたします。

※参考サイトは最下部にまとめております。

障害内容

運用中のシステムにて、スマホから TCPDF – PDF 出力すると 画面が真っ白になる…との報告を受けました。

※プログラム更新等は行っておらず ある日突然発生いたしました。

ブラウザ別の応答状況

当該ページをブラウザ別に閲覧すると、以下の通りでした…

  • Safari … 画面が真っ白になる
  • FireFox … 画面が真っ白になる または 読み込み中の状態から応答が止まる
  • Chrome 「~のウェブページは一時的に停止しているか、新しいウェブアドレスに移動した可能性があります。」+「ERR_INVALID_RESPONSE」メッセージが表示される。

※PC 用のブラウザからは問題なく閲覧できていました。

ERR_INVALID_RESPONSE / ERR_FAILED

エラー詳細メッセージは “ERR_INVALID_RESPONSE” が表示される場合と “ERR_FAILED” が表示される場合と2種類ありました。

output() メソッド

TCPDF – output() メソッドの第2引数は、通常は「I : ブラウザに出力する(既定)」を選択しますが、「S: PDFドキュメントの内容を文字列として出力する。」で試してみると、特にプログラムがエラーを起こしている様子はありませんでした。

D: ブラウザで(強制的に)ダウンロードする。

TCPDF – output() メソッドの第2引数を “D: ブラウザで(強制的に)ダウンロードする。” に変更することで、スマホからの閲覧は問題なく正常に実行されるようになりました。

ただ、output() メソッドの下に HTML などを書いてますと、PDF ファイルのダウンロードよりも先に HTML が処理されてしまっておかしなことになるので、exit() を書いておく必要があります

こんな感じです…

$objPDF->Output("hogehoge.pdf", "D");
exit();

参考になりましたら幸いです。

参考サイト

Output : TCPDF マニュアル(勝手訳)
http://tcpdf.penlabo.net/method/o/Output.html

COMMENT

メールアドレスが公開されることはありません。