根據李果正的文章:
其實,PDF 並不是一種 document format,而是一種 page [layout] format。
因此,pdf不會發生像html文件在不同的瀏覽器上有不同的排版效果。採用pdf可以確保打印出來的效果不會變樣。
pdf如何確保在每一台電腦上看到的排版效果都一樣呢? 難道在每一份pdf文件裏包進自己的字型? 是的,這的確是目前普遍的作法,因此一份pdf文件變的很大,就是因為它包了中文字型進去。但卻是個浪費空間的作法。
另一種作法就是讓閱讀器安裝字型,pdf文件本身不帶字型。但是問題又來了,那就是漏字問題。一份以utf-8編碼的簡體中文pdf文件,在繁體中文閱讀器上有些字會出現漏字現象。這說明pdf在編碼和字型處理上有自己的一套,並不是按照作業系統utf-8編碼的繁簡中文共用一套字型。因此,如果要閱讀utf-8編碼的繁簡中文pdf文件,必須安裝兩套中文字型。有點囉嗦。
下載字型套件:http://www.adobe.com/tw/products/acrobat/acrrasianfontpack.html
要用PHP產生utf8編碼的中文pdf文件可以參考這個網頁後半段的討論,下載chinese-unicode.php這個類。這樣寫:
require(’chinese-unicode.php’);
$pdf=new PDF_Unicode();
$pdf->Open();
$pdf->AddPage();$pdf->AddUniGBhwFont(’uni’);
$pdf->SetFont(’uni’,'’,20);$pdf->Write(10, “简体没问题,繁體也沒問題!");
$pdf->Output();
建議使用AddUniGBhwFont()而不要用AddUniCNShwFont()。因為簡體字型裏包含了繁體字型,用AddUniGBhwFont()產生繁體中文內容的pdf文件也不會有問題。如果用AddUniCNShwFont()產生簡體中文內容的pdf文件,雖然閱讀器安裝了簡體字型,但是閱讀器會把它當成繁體文件,而使用繁體字型顯示,造成一些簡體字顯示不出來。
此文章還沒有 Pingbacks
Comments are not allowed from anonymous visitors.