8-1-3
用 HTML 快速產生 PDF
您沒有觀看影片的權限
請先登入,登入後,確認您的權限後,即可觀看影片。
- 微調版面(直的改成橫的),字型改小一點
require_once XOOPS_ROOT_PATH . '/modules/tadtools/tcpdf/tcpdf.php';
$pdf = new TCPDF("L", "mm", "A4", true, 'UTF-8', false);
$pdf->setPrintHeader(false); //不要頁首
$pdf->setPrintFooter(false); //不要頁尾
$pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); //設定自動分頁
$pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中)
$pdf->SetFont('droidsansfallback', '', 11, '', true); //設定字型
$pdf->SetMargins(15, 15); //設定頁面邊界,
$pdf->AddPage(); //新增頁面,一定要有,否則內容出不來
- 用 HTML 快速產生 PDF 的方法: (有支援的網頁標籤:a, b, blockquote, br, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, ol, p, pre, small, span, strong, sub, sup, table, tcpdf, td, th, thead, tr, tt, u, ul):
$pdf->writeHTML($html, $ln=1, $fill=0, $reseth=true, $cell =true, $align='');
$html
:內容(屬性一定要用雙引號)
$ln
:下一個元件的位置:「0(預設)右邊;1下行最左邊;2目前元件下方」
$fill
:是否填色:「true為不透明;false透明」
$reseth
:若true會重設最後一格的高度
$cell
:自動增加內距
$align
:對齊方向:「L;C;R」。
- 加入標題部份
$title = $action['title'];
$html[] = "<h1>{$title}報名名單</h1>";
$html[] = '<table border="1" cellpadding="3">';
$head_row = explode("\n", $action['setup']);
$head = [];
foreach ($head_row as $head_data) {
$cols = explode(',', $head_data);
if (strpos($cols[0], '#') === false) {
$head[] = str_replace('*', '', trim($cols[0]));
}
}
$head[] = '錄取';
$head[] = '報名日期';
$head[] = '身份';
$html[] = "<tr><th>" . implode("</th><th>", $head) . "</th></tr>";
- 加入內容部份
$signup = Tad_signup_data::get_all($action['id']);
foreach ($signup as $signup_data) {
$iteam = [];
foreach ($signup_data['tdc'] as $user_data) {
$iteam[] = implode('|', $user_data);
}
if ($signup_data['accept'] === '1') {
$iteam[] = '錄取';
} elseif ($signup_data['accept'] === '0') {
$iteam[] = '未錄取';
} else {
$iteam[] = '尚未設定';
}
$iteam[] = $signup_data['signup_date'];
$iteam[] = $signup_data['tag'];
$html[] = "<tr><td>" . implode("</td><td>", $iteam) . "</td></tr>";
}
$html[] = "</table>";
$html_content = implode('', $html);
- 最後產出PDF內容:
require_once XOOPS_ROOT_PATH . '/modules/tadtools/tcpdf/tcpdf.php';
$pdf = new TCPDF("L", "mm", "A4", true, 'UTF-8', false);
$pdf->setPrintHeader(false); //不要頁首
$pdf->setPrintFooter(false); //不要頁尾
$pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); //設定自動分頁
$pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中)
$pdf->SetFont('droidsansfallback', '', 11, '', true); //設定字型
$pdf->SetMargins(15, 15); //設定頁面邊界,
$pdf->AddPage(); //新增頁面,一定要有,否則內容出不來
$pdf->writeHTML($html_content);
$pdf->Output("{$title}.pdf", 'D');
- 修改
templates\op_tad_signup_actions_show.tpl
,加入下載按鈕
<div class="bar">
<!--略-->
<a href="<{$xoops_url}>/modules/tad_signup/excel.php?id=<{$id}>&type=signup" class="btn btn-success"><i class="fa fa-file-excel-o" aria-hidden="true"></i> 匯出報名名單 Excel</a>
<a href="<{$xoops_url}>/modules/tad_signup/pdf.php?id=<{$id}>" class="btn btn-danger"><i class="fa fa-file-pdf-o" aria-hidden="true"></i> 匯出報名名單 PDF</a>
</div>
link to https://github.com/tadlearn/tad_signup/commit/8124462377faef5bbea9dac0202cdab9842092cf \