Windows下有很多中文字體,但是我們要用在TCPDF中的中文字體有下面幾個要求:
< View plain text >
php
* 支持Unicode,因為TCPDF支持的是Unicode;
* 體積越小越好;
* 最好是也支持繁體中文;
這樣看來,微軟雅黑以及方正的壹些字體都符合要求。但是他們都是商業字體,而且個頭都不小,以微軟雅黑為例,msyh.ttf 文件就超過10M,如果使用它,生成的PDF文件體積也會很大。
綜合考慮,我覺得”Droid Sans Fallback”字體符合要求:
< View plain text >
php
* 首先它是免費字體;
* 其次它也是Unicode編碼,支持簡體繁體中文以及日文韓文等等;
* 然後它的體積很小,不超過5M。
然而TCPDF不支持TTF字體文件,因此我們先將它轉換成TCPDF支持的格式,然後再使用。在TCPDF目錄下有個fonts子目錄,這個子目錄下又有個utils,這裏面帶有壹個字體轉換工具ttf2ufm.exe。下面是轉換的步驟:
在網上很容易找到Droid Sans Fallback字體的下載鏈接,因此在這裏就沒有必要多做描述了。我們把下載到的 DroidSansFallback.ttf 復制到 TCPDF\\fonts\\utils 下面,然後打開Windows的命令行,切換到此路徑下,輸入如下命令:
< View plain text >
php
D:\\www\\tcpdf\\fonts\\utils>ttf2ufm -a -F DroidSansFallback.ttf
等待壹段時間,等到命令行窗口顯示
< View plain text >
php
"Finished - font files created"
之後,可以發現此目錄下生成了DroidSansFallback.afm,DroidSansFallback.t1a 和 DroidSansFallback.ufm 這三個文件。
在命令行中輸入
< View plain text >
php
"C:\\Program Files\\WAMP\\PHP5\\php.exe" -q makefont.php DroidSansFallback.ttf DroidSansFallback.ufm
說明:這裏的”C:\\Program Files\\WAMP\\PHP5\\php.exe”為php.exe文件所在的路徑,請根據實際情況輸入。回車運行之後,稍等片刻,命令行窗口中會提示
< View plain text >
php
Font definition file generated
至此大功告成。將生成的droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z這三個文件復制到 TCPDF\\fonts 下面即可。
打開example_038.php文件,將
< View plain text >
php
$pdf->SetFont(\'stsongstdlight\', \'\', 20);
修改為
< View plain text >
php
$pdf->SetFont(\'droidsansfallback\', \'\', 20);
這樣就能夠調用我們剛才生成的字體,再訪問 http://localhost/tcpdf/examples/example_038.php 就可以看到重新生成的PDF文檔。