當前位置:編程學習大全網 - 源碼下載 - tcpdf msyh.php生成微軟雅黑為什麽無效

tcpdf msyh.php生成微軟雅黑為什麽無效

這種方式生成的PDF文件的優點是:文件體積小,生成快速。但也有缺點是,沒有嵌入中文字體,只限於安裝了Adobe Reader之後才能正常顯示。那萬壹用戶使用的是FoxIt Reader或者是Linux操作系統呢?顯示效果就不壹樣了。因此,為了保證生成的PDF文件在任何環境下都有同樣的顯示效果,嵌入字體是必需的。

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文檔。

  • 上一篇:除了瘋狂堆,安卓手機還有哪些方式可以增加性能,降低功耗?
  • 下一篇:Cef源代碼分析
  • copyright 2024編程學習大全網