如果您已經寫好一個PHP網頁程式,現在需要提供一個功能,例如一個按鈕,將此內容直接輸出PDF。這時候,可能需要另外寫一支PHP程式將內容轉輸出PDF。
筆者比較了幾個PHP程式庫後,推薦使用mPDF 程式庫,可以用最少的程式碼完成這個功能。
程式碼範例 :
require("mpdf60/mpdf.php");
$mpdf=new mPDF('utf-8','A4');
ob_start();
include('您的PHP網頁程式.php');
$html = ob_get_contents();
ob_end_clean();
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
直接將寫好的PHP網頁程式include進來,就完成了,簡單吧。
不過看看輸出的PDF內容,您會發現無法如預期顯示您設定的字型,表格顯示也有一些問題。就這兩部分,還需要進入mPDF官網查查看相關設定 : 字型設定, 表格設定。
有關字型設定,以下是我的設定範例,如何在mPDF增加與顯示Eras ITC字型
步驟 1 將Eras ITC字型檔複製到mpdf60\ttfonts 資料夾中。
步驟 2 設定 mpdf60\config_fonts.php
2.1 $this->fontdata 中增加Eras ITC字型
$this->fontdata = array(
"eras-itc" => array(
'R' => "ERASMD.TTF",
'B' => "ERASBD.TTF",
),
2.2 $this->fonttrans 增加 'erasitc' => 'eras-itc',
$this->fonttrans = array(
'times' => 'timesnewroman',
'courier' => 'couriernew',
'trebuchet' => 'trebuchetms',
'comic' => 'comicsansms',
'franklin' => 'franklingothicbook',
'ocr-b' => 'ocrb',
'ocr-b10bt' => 'ocrb',
'damase' => 'mph2bdamase',
'erasitc' => 'eras-itc',
);
注意 : CSS程式中font-family只有$this->fonttrans與$this->fontdata設定的字型才會顯示, 而且名稱要一樣步驟 3 修改程式中的CSS
body {
color: black;
font-family: erasitc, "Eras ITC","Eras Medium ITC", Arial;
}
沒有留言:
張貼留言
歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)