首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

解决利用iText导出PDF表格中文乱码两种方式

2012-10-09 
解决利用iText导出PDF报表中文乱码两种方式一、利用iTextAsian.jar解决中文乱码,iTextAsian.jar提供了对中

解决利用iText导出PDF报表中文乱码两种方式
  一、利用iTextAsian.jar解决中文乱码,iTextAsian.jar提供了对中文字符输出的支持。
   1.itext5.x版本以下的,比如itext2.x,直接导入到classpath目录下就OK了,
     附件中有针对iText5.0以下版本的iTextAsian5down.jar下载。
   

BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL);Paragraph pragraph=new Paragraph("你好", FontChinese); 


  2.itext5.x版本以上的,直接导入到classpath目录下,会出现无法找到中文字体的问题。主要的原因是iTextAsian.jar的包名:com.lowagie.text.pdf.fonts。而 iText5.x的Font的包名:com.itextpdf.text.pdf.fonts。
iText2.x的相应的包名:com.lowagie.text.pdf.fonts 。
    原来iTextAsian.jar对iText的扩展,是通过在相同的包空间下加入字体来解决的。故将winrar解压下iTextAsian.jar,将包名com.lowagie.text.pdf.fonts修改为com.itextpdf.text.pdf.fonts,再压缩就OK了。
     附件中有针对iText5.0以上版本的iTextAsian5up.jar(已经修改好的了)下载。代码编写和上面的一样。
二、使用自带的字体,字体可以自己下载,也可以使用windows自带的字体 
       Document document = new Document();PdfWriter.getInstance(document, new FileOutputStream("D:/demo.pdf"));            //使用windows自带的字体,字体所在路径BaseFont chinese = BaseFont.createFont("C:/windows/fonts/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);Font font = new Font(chinese, 14, Font.NORMAL);document.open();document.add(new Paragraph("iText中文测试内容", font));document.close();

下面附件中中中文简体字体包



热点排行