Saturday, October 2, 2010

iText 的中文显示问题

iText是用Java建立pdf文档的一个库。对于中日韩字体文档,iText也有相应的支持,按照说明,只需将iTextAsian.jar放在classpath内,然后创建相应字体即可。但昨天试图建立中文pdf的时候,发现创建字体出错。

google结果只说需要正确设置classpath,这应该不是问题。

下载iText源码,然后跟踪,问题出在判断字体是否是cjk部分,接着发现在判断cjk的时候,properties文件并未正确找到,最后发现在CJKFont类里面,properties文件的位置写在com.itextpdf.text.pdf.fonts包内,而iText网站提供的iTextAsian.jar却用了com.lowagie.text.pdf.fonts做包名。

解决办法,自己做一个jar,把iTextAsian中的属性文件展开后再拷贝到正确的目录结构,然后再打包成jar,然后替换程序里引用的那个iTextAsian.jar即可。

No comments:

Post a Comment