使用PHP開源類別(TCPDF)製作 UTF-8 的PDF報表


作者: | 2011/07/25 | 3 則迴響



最近有PHP專案需要製作報表,決定了輸出使用PDF格式後,便開始尋找解決方案。目前網路上找到的大多是FPDF或是其衍生出來的專案,因為有點急,就直接拿FPDF來做,沒想到是惡夢的開始XD,使用FPDF製作英文內容的FPDF,是沒什麼問題,但如果是中文內容,便問題重重。

試了很多目前現存在網路上號稱支援中文的FPDF,試驗結果不是失敗就是只支援BIG5 (chinese.php檔),偏偏客戶的中文資料有罕見字,像是媖、煊、堃、珉、彣、伃、峯、晧等字,若用BIG5就會出不來。

試了好幾個小時後宣告放棄FPDF,尋找它表現比較好的子孫,於是找到TCPDF

TCPDF因為是FPDF的子孫,所以語法幾乎不太需要轉換,而且支援UTF-8,真的是感動哪。不過它最感心的不只是支援UTF-8,它還支援WriteHTML這個超級相見恨晚的函式,故名思義就是只要餵它HTML語法,它就可以忠實轉成PDF內容。

到TCPDF官網下載TCPDF後,解開後可發現裡頭的examples目錄就有很多範例了。做報表最基本的就是頁首、頁尾的設定了,可參考第1~3個範例;另外,第6個範例就是WriteHTML。

基本上它的使用方式很簡單,只要include TCPDF,自建一個class,然後去extend TCPDF類別,接著new出實體,就可以開始Play了:
[code]
include_once (‘lib/tcpdf/tcpdf.php’);
require_once(‘lib/tcpdf/config/lang/eng.php’);

class PDF_report1 extends TCPDF
{
//Page header
function Header()
{
// 自訂頁首內容
}
function Footer()
{
// 自訂頁尾內容
}
}

$pdf = new PDF_report1(‘P’,’mm’,’A4′, true, ‘UTF-8’, false);
[/code]

如上,New出來的$pdf,就可以藉著執行一脫拉庫的方法,一步一步的建立PDF格式的內容,最後再output,這個php檔就會輸出成pdf格式了。

至於輸出UTF-8的中文字,只要使用此語法就OK了:
[code]
$pdf->SetFont(‘msungstdlight’,”,16);
[/code]

其他詳細用法,直接copy範例修改會比較快。

參考:
TCPDF官網-範例


標籤:, , ,

分類:,

本文作者是Audi Lu

3 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

*

*

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料