1. 程式人生 > >Itext 使用入門 之 建立pdf 文件 附中文解決方案

Itext 使用入門 之 建立pdf 文件 附中文解決方案

Itext.jar 的版本是 5.0.5

往 c:/test.pdf 檔案寫入中文

BaseFont chinese = BaseFont.createFont("STSong-Light",   "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);  

若 BaseFont 如此定義 則會報一個

com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.

Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized

還是不行,繼續研究,在網上前輩們說如下原因:

  iText5.x版本以上中的font和encoding檔案都是從String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/"載入的,而老itextasian.jar的包名是com.lowagie.text.pdf.fonts, 包名不一致導致路徑錯誤,。

具體解決方法就是修改包的路徑了,詳細方法如下:

1.解壓iTextAsian.jar
  得到如下目錄:
  iTextAsian
     --com
        --lowagie
          --text
            --pdf
              --fonts
                --...(字型屬性檔案)
2.將解壓後的com目錄下的包名lowagie更改為itextpdf
3.在命令列轉至iTextAsian目錄,重新打包為iTextAsian.jar檔案
4.打包命令如下:
  jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/*
5.執行後,將新的iTextAsian.jar加入classpath路徑

執行結果,OK,解決問題。

===========================

可以使用系統自帶的字型

或者 將simsun.ttc複製到 src 目錄下面;

至此問題解決