:::

8-1-3 用 HTML 快速產生 PDF

您沒有觀看影片的權限

您沒有觀看影片的權限

請先登入,登入後,確認您的權限後,即可觀看影片。

  1. 微調版面(直的改成橫的),字型改小一點
    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(); //新增頁面,一定要有,否則內容出不來

     

  2. 用 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='');

     

    1. $html:內容(屬性一定要用雙引號)
    2. $ln:下一個元件的位置:「0(預設)右邊;1下行最左邊;2目前元件下方」
    3. $fill:是否填色:「true為不透明;false透明」
    4. $reseth:若true會重設最後一格的高度
    5. $cell:自動增加內距
    6. $align:對齊方向:「L;C;R」。
  3. 加入標題部份
    $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>";

     

  4. 加入內容部份
    $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);

     

  5. 最後產出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');
    

     

  6. 修改 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 \


:::

搜尋

QR Code 區塊

https%3A%2F%2Ftad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1773%26tbsn%3D48

書籍目錄

展開 | 闔起

線上使用者

58人線上 (13人在瀏覽線上書籍)

會員: 0

訪客: 58

更多…