質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

5209閲覧

phpwkhtmltopdfで複数ページのaddPageをすると空白ページになる

kazumaekawa

総合スコア49

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/08/22 05:58

wkhtmltopdf と phpwkhtmltopdf で PDF 出力機能を作りました。出力する html ページは非常に長く、だいたい 6~7ページ 程度になります。

そのため、区切りの悪い箇所で改ページとなってしまうので、任意の場所で改ページをしようとしたところ、掲題の通り、空白ページが出来上がってしまいます。

php

1$pdf->addPage($html1); 2$pdf->addPage($html2); 3$pdf->addPage($html3); 4$pdf->addPage($html4); 5$pdf->addPage($html5);

上記のような書き方をすると、5ページ出力されるのですが、3~5ページ目は何も表示されない状態になります。ただし、常にそれが起きるわけではなく、たまに正常に表示されたりもあります。

htmlはbootstrapを使っており、bootstrapを拡張した AdminLTE というCSSを使っています。
この AdminLTE をコメントアウトした場合は出力されるということがわかりましたが、なぜAdminLTEがないことで出力されるのかはわかっていません。
また、AdminLTE は全てのhtmlについているため、3ページ目以降だけ「外さないと表示されない」というのにも混乱しています。(1~2ページ目は表示される)
※ AdminLTEがなくなると、デザインがおかしくなってしまうため、外すことは難しいです。

PHPバージョンは 5.4、フレームワークは FuelPHP1.8 です。

その他不明点ありましたらご連絡ください。よろしくお願いします。

[参考]

  • PHPでPDFを作成するときはphpwkhtmltopdfで戦え [2016年度版]

http://qiita.com/morisuke/items/88010efca9fc03466c7f

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「たまに正常に表示されたり」というような状況を考えると、JavaScriptで動くウィジェットを入れていたような場合には「JavaScriptの処理が間に合っていない」可能性もあります。

new Pdf(['javascript-delay' => 1000]);のようにすることで、JavaScriptの実行を待つ時間を制御できます(ミリ秒単位で、デフォルトは200ミリ秒)。

投稿2017/08/22 07:13

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazumaekawa

2017/08/22 18:00

まさにこの方法で解決しました! 非常に助かりました、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問