使用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 則留言
受益良多呀,以前直接跳到列印頁面讓使用者自己下載成pdf
[…] 使用PHP開源類別(TCPDF)製作 UTF-8 的PDF報表 本篇發表於 PHP教學。將永久鏈結加入書籤。 ← 利用 Android 手機記錄行程及途經點 將陣列轉成字串 → […]
不知道能不能使用其他的字体,并且能支持中文呢?