Google

2008年11月6日 星期四

itext.net 中文顯示問題

這次使用 itext.net 作為 PDF 輸出的元件,原本我是想像說是否有元件可以像一般AP一樣,只要
用列印或導向的方式把一個文件輸出,就可以轉成PDF,但就目前的學習成果是,還是要一行一行的輸出&排版,這我也認了,反正也算是一種解決方法。
但是,問題又來了,預設中文是無法顯示的,這下子好玩了,開始找 solution, 拜託 孤狗大神出馬了,到處找到處找,發現 itext 在 java 的領域用的人比較多,.net 方面好像比較少,資料來源又以大陸的居多,台灣的正體字資源目前還沒有找到適用的,不過找到一個網友寫的應該可以參考,就來試試看吧! 希望可以成功 ( 2008/11/6)。

example :

BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
Paragraph p = new Paragraph(chinese, FontChinese);
document.add(p);

* Chinese Simplified:
STSong-Light and STSongStd-Light with the encodings UniGB-UCS2-H and UniGB-UCS2-V
* Chinese Traditional:
MHei-Medium, MSung-Light and MSungStd-Light with the encodings UniCNS-UCS2-H and UniCNS-UCS2-V
* Japanese:
HeiseiMin-W3, HeiseiKakuGo-W5 and KozMinPro-Regular with the encodings UniJIS-UCS2-H, UniJIS-UCS2-V, UniJIS-UCS2-HW-H and UniJIS-UCS2-HW-V
* Korean:
HYGoThic-Medium, HYSMyeongJo-Medium and HYSMyeongJoStd with the encodings UniKS-UCS2-H and UniKS-UCS2-V

所以,我要用 正體中文的字型 應該改成

BaseFont bfChinese = BaseFont.createFont("MHei-Medium", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED);

以上 都是 PHP、JAVA、JSP 等的寫法,後來找到 網友的 asp.net 的寫法了

BaseFont bfChinese = BaseFont.CreateFont("c:\\windows\\fonts\\mingliu.ttc,0", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
FontChinese = new iTextSharp.text.Font(bfChinese, 12, Font.NORMAL);

* c:\\windows\\fonts\\mingliu.ttc,0 : 你必須直接指定系統中你的字型的位置在哪裡。

* BaseFont.IDENTITY_H : 橫式中文

* BaseFont.IDENTITY_V : 直式中文

沒有留言: