茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729348 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
HoiHoiSan_00045.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2012/9/4 8:40:07

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


最近有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了:



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);

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

至於輸出UTF-8的中文字,只要使用此語法就OK了:



$pdf->SetFont('msungstdlight','',16);

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

參考:
TCPDF官網-範例


原文出處:使用PHP開源類別(TCPDF)製作 UTF-8 的PDF報表 @ mr.mu
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|