前提・実現したいこと
PDF出力にphp文を組み込みたい
(cakePHP3.6)
ここに質問の内容を詳しく書いてください。
"tecnickcom/tcpdf": "^6.2" を使ってpdf出力をしていますが、html以外無視するのか、php文を読み込みません。
Bootstrapも無視されます。
htmlのみの記述の時は綺麗に出力されます。
発生している問題・エラーメッセージ
pdf出力した際、エラーはなく、php文で書いたところが空欄になってしまう
該当のソースコード
cakePHP3.6 "tecnickcom/tcpdf": "^6.2" MstPubController ... // pdf出力をおこなうアクション public function print() { $mstPub = $this->MstPub->newEntity(); // mstPubテーブルの全データをセット $this->set(compact('mstPub')); $this->response->type('pdf'); $this->response->charset('UTF-8'); // $this->response->download('print.pdf'); ブラウザ出力だけにするのでダウンロードはいらない $this->layout = false; } ... print.ctp <?php $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8'); $pdf->SetFont('kozgopromedium'); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->AddPage(); // 1ページ目を準備 $html = <<< EOF <html> <head> <style type="text/css"> h1 { text-align: center; } </style> </head> <body> <h1>店舗データ</h1> <table border="1"> <thead> <tr> <th>店舗コード</th> <th>'店舗ネーム'</th> </tr> </thead> <tbody> // ここから下が空欄で出力されてしまっている <?php foreach ($mstPub as $mstPub): ?> <tr> <td><div class="text-center"><?= h($mstPub->pub_cd) ?></div></td> <td><div class="text-center"><?= h($mstPub->pub_name) ?></div></td> </tr> <?php endforeach; ?> </tbody> </table> </body> </html> EOF; // 作った HTML を書きだします。 // PDF を出力 ( I = ブラウザ出力, D = ダウンロード, F = ローカルファイルとして保存, S = 文字列として出力 ) $pdf->writeHTML($html, false); echo $pdf->Output('', 'I'); ?>
試したこと
純粋にhtmlとcssだけでtableタグ内を表記すると綺麗に表示され、問題ないのですが、それでは、mstPubテーブルのデータ一覧を渡すことができないので困っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。