現在、Smartyを利用した発注システムを作っています。
(前回の質問では、大変お世話になりました。)
画面上で動的に発注内容を入力→発注内容をSQLへ→メールで送信!という流れです。
そこで、発注内容を記載したPDF(領収書?発注書控え?のようなもの)を作りたいのですが、
SmartyのテンプレートからPDFを生成する方法について相談したいです。
HTMLからPDFという動きはTCPDFから一通りできたのですが、
Smartyのテンプレートから、となるとtplにTCPDFの変換部分(下記)を入れても動きませんでした。
PDFにならず、TCPDFの部分が通常の文字として出力されます。
※下記のソースは/templates以下の.tplのみです。
DBからのデータ取得や変数などのassignは/templatesディレクトリと同階層の別.phpファイルで行っています。
PHP
1//ここから 2<?php 3require_once "tcpdf/tcpdf.php"; // include_path配下に設置したtcpdf.phpを読み込む 4 5$tcpdf = new TCPDF(); 6$tcpdf->AddPage(); // 新しいpdfページを追加 7 8$tcpdf->SetFont("kozgopromedium", "", 10); // デフォルトで用意されている日本語フォント 9//この辺りまで文字に 10 11$html = <<< EOF 12<head> 13<meta charset="UTF-8"> 14</head> 15<body> 16 <div> 17 <table class ="center-position" border="1"> 18 <!-- 見出し項目表示箇所 Start --> 19 <tr style=color:"#ffffff" bgcolor="#000000" height=30px> 20 <th class ="menu" width=100>メーカー</th> 21 <th class ="menu" width=220>商品名</th> 22 <th class ="menu" width=100>単価(円)</th> 23 <th class ="menu" width=50>数量</th> 24 </tr> 25 <!-- 見出し項目表示箇所 End --> 26 27 <!-- 検索データ表示箇所 Start --> 28 {section name=dbList loop=$result} 29 <tr height=35px> 30 <td class="display-center">{$result[dbList].MAKER}</td> 31 <td class="display-left">{$result[dbList].NAME}</td> 32 <td class="display-right">{$result[dbList].KINGAKU}</td> 33 <td width=50><input class = "number2" type="tel" name="suryo[]" autocomplete="off" maxlength="2" style="width:50px; height:4px; font-size: 17px;"></td> 34 </tr> 35 {/section} 36 <!-- 検索データ表示箇所 End --> 37 </table> 38</body> 39</html> 40EOF; 41 42//ここから 43$tcpdf->writeHTML($html); // 表示htmlを設定 44$tcpdf->Output('samurai.pdf', 'I'); // pdf表示設定 45//ここも文字に 46?>
SmartyテンプレートからのPDF作成は、TCPDFで可能なのでしょうか?
それとも、別のライブラリを使用したほうが良いのでしょうか。
Smartyを使わないPDF生成で楽なものがあるかもしれませんが、
データベースからのレコード取得ができている現状にPDF生成の機能を追加、という動きにどうしてもとどめたいです。
ご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/28 09:50
2020/08/28 21:03
2020/08/30 00:45
2020/08/30 00:54