:::

16. 用TCPDF產生PDF(上)

一、 安裝設定TCPDF

  1. 將tcpdf解壓放至模組的class下。
  2. 開啟config/tcpdf_config.php將PDF_FONT_NAME_MAIN及PDF_FONT_NAME_DATA的值helvetica改為msungstdlight,以正確使用中文。
  3. msungstdlight需有安裝Adobe Reader才能看到的中文字型。
  4. 可將Droid Sans Fallback字型解壓傳至fonts底下,即有droidsansfallback中黑體可用。
  5. 完整手冊:http://www.tcpdf.org/doc/code/classTCPDF.html

二、 建立PDF檔案

include_once "header.php";
require_once('class/tcpdf/config/lang/zho.php');
require_once('class/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
  1. 「$orientation」頁面方向,預設為P(直式),橫向為L,空值則自動判斷
  2. 「$unit」度量單位,pt、mm(預設)、cm、in
  3. 「$format」紙張大小,預設為A4
  4. 「$unicode」是否使用unicode,預設為true
  5. 「$encoding」文件編碼,預設為UTF-8
  6. 「$diskcache」使用磁碟快取,true會減少記憶體用量,但效能會變差,預設為false
  7. 「$pdfa」使用PDF/A模式(長期保存的電子文件格式),預設為false。

三、 常用語法

$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');
  1. SetFont 的參數:
    1. 「$family」字型名稱
    2. 「$style」樣式:B粗、I斜、U底線、D刪除線、O上方線
    3. 「$size」字型大小(預設為12pt)
    4. 「$fontfile」字型檔
    5. 「$subset」使用文字子集
  2. 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」。
  3. Output的參數如下:
    1. 「$name」檔名
    2. 「$dest」輸出模式:「I: 在瀏覽器中呈現 (預設);D: 強制下載(無法用中文檔名);F: 存在主機空間裡;S: 以文字方式傳回文件;FI: 等同F+I :FD: 等同F+D;E: 以郵件附件方式傳回文件。

四、 插入文字的方法

Cell($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, $ignore_min_height, $calign, $valign);
MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml, $autopadding, $maxh, $valign, $fitcell);
writeHTMLCell($w, $h, $x, $y, $html, $border, $ln, $fill, $reseth, $align, autopadding);

各種參數:

  1. 「$w」寬
  2. 「$h」最小高度
  3. 「$border」框線:「0,1,T,R,B,L」
  4. 「$ln」下一個元件的位置:「0(預設)右邊;1下行最左邊;2目前元件下方」
  5. 「$align」對齊方向:「L,C,R,J」
  6. 「$fill」是否填色:「true為不透明;false透明」
  7. 「$link」加入連結
  8. 「$stretch」延伸:0不延伸;1字大於格寬才縮放文字;2一律縮放文字到格寬;3字大於格寬才縮放字距;4一律縮放字距到格寬、「$ignore_min_height」自動忽略最小高度
  9. 「$calign」格內對齊:「T格上,C格中,B格下,A字上,L字底,D字下」
  10. 「$valign」垂直對齊:「T,C,B」
  11. 「$reseth」若true會重設最後一格的高度
  12. 「$autopadding」自動調整內距
  13. 「$x、$y」左上角起始位置
  14. 「$ishtml」請設為false
  15. 「$maxh」高度上限(需>$h)
  16. 「$fitcell」自動縮放字大小到格內
  17. 「$html」內容(屬性一定要用雙引號)

:::

書籍目錄

展開 | 闔起

線上使用者

34人線上 (6人在瀏覽線上書籍)

會員: 0

訪客: 34

更多…

網站佈景


(共 5 個樣板佈景)