TCPDF的官方網站:http://www.tcpdf.org/
tcpdf(5.9.149)提供了65個範例檔案,示範如何從php建立各種不同樣式、內容風格的PDF檔案。
其中example_038.php是一個說明如何建立CJK文字內容的範例(CJK:中日韓),如果把這個範例的頁首內容更為繁體中文內容,會無法正確顯示:
// set default header data
//原作法以define的方式,定義在tcpdf_config.php中,是英文內容
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH,
PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);
//字型更改為繁體中文內容
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, '測試繁體中文頁首標題', '測試繁體中文頁首字串內容');
將tcpdf_config.php的PDF_FONT_NAME_MAIN的值,由helvetica更改為msungstdlight,即可正確顯示繁體中文的頁首標題內容。
/**
* default main font name
*/
//define ('PDF_FONT_NAME_MAIN', 'helvetica'); //預設值
define ('PDF_FONT_NAME_MAIN', 'msungstdlight'); //可讓頁首標題正確顯示
以下是修改example_038.php,使顯示繁體中文內容的部分程式碼:
// set font
//$pdf->SetFont('cid0jp', '', 20); //這個應該也可以
//$pdf->SetFont('cid0ct', '', 20); //這個應該也可以
$pdf->SetFont('msungstdlight', '', 20);
// add a page
$pdf->AddPage();
//$txt = 'Example of CID-0 CJK unembedded font.
//To display extended text you must have CJK fonts for your PDF reader: こんにちは世界';
$txt = '林書豪再現「林來瘋」身手!';
$txt = $txt . '昨拿廿分、十三助攻與四抄截,';
$txt = $txt . '本季第六次獻出兩個「雙位數」成績單;';
$txt = $txt . '可惜紐約尼克隊防守再出紕漏,';
$txt = $txt . '終場一一四比一一九不敵密爾瓦基公鹿,客場四戰全輸。';
$txt = $txt . '明天凌晨十二點重返紐約主場迎戰費城七六人,尼克全力止敗。';
$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
以下是調整後所顯示的內容:
