# TCPDF筆記 ###### tags: `PHP` ## 套件安裝 * composer安裝 ```bash composer require tecnickcom/tcpdf ``` * 利用composer載入tcpdf ```php <?php include __DIR__."/vendor/autoload.php"; ``` ## 物件初始化 * 建立新的 TCPDF 物件 ```php <?php $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); ``` * 參數說明: | 預設值 | 可能的值 | 作用說明 | 備註 | | ------------------------------- | ------------------------------------------------------------- | --------------------- | -------------------------------------------------- | | `PDF_PAGE_ORIENTATION` or `'P'` | `'P'` 直式<br>`'L'` 橫式 | 頁面方向 | | | `PDF_UNIT` or `'mm'` | `'pt'`:point<br>`'mm'`:公釐<br>`'cm'`:公分<br>`'in'`:英吋 | 文字度量單位 | 1 pt = 1/72 in<br>1 pt = 0.35 mm<br>1 in = 2.54 cm | | `PDF_PAGE_FORMAT` or `'A4'` | `'A3'`、`'A4'`、`'B4'` | 紙張尺寸 | `tcpdf_static.php` | | `true` | | 是否使用unicode | | | `'UTF-8'` | | 文件編碼 | | | `false` | | 使用磁碟快取 | DEPRECATED | | `false` | | PDF/A模式 | | ### 常用語法 ```php= <?php $pdf->setPrintHeader(false); //不要頁首 $pdf->setPrintFooter(false); //不要頁尾 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁 $pdf->setLanguageArray($l); //設定語言相關字串 $pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中) $pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型 $pdf->AddPage(); //新增頁面 $pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));//文字陰影 $pdf->writeHTML($html, $ln=1, $fill=0, $reseth=true, $cell =true, $align=''); $pdf->Output('contact.pdf', 'D'); ``` * SetFont 的參數: 1. 「$family」字型名稱 2. 「$style」樣式:B粗、I斜、U底線、D刪除線、O上方線 3. 「$size」字型大小(預設為12pt) 4. 「$fontfile」字型檔 5. 「$subset」使用文字子集 * writeHTML的參數如下(有支援的網頁標籤: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): 1. 「$html」內容(屬性一定要用雙引號) 2. 「$ln」下一個元件的位置:「0(預設)右邊;1下行最左邊;2目前元件下方」 3. 「$fill」是否填色:「true為不透明;false透明」 4. 「$reseth」若true會重設最後一格的高度 5. 「$cell」自動增加內距 6. 「$align」對齊方向:「L;C;R」。 * Output的參數如下: 1. 「$name」檔名 2. 「$dest」輸出模式:「I: 在瀏覽器中呈現 (預設);D: 強制下載(無法用中文檔名);F: 存在主機空間裡;S: 以文字方式傳回文件;FI: 等同F+I :FD: 等同F+D;E: 以郵件附件方式傳回文件。