iText输出中文问题


iText默认不支持亚洲语言,导致iText生成中文出现问题,一般都是中文内容不能出现在pdf上,这是因为没有中文字体的原因.

要让iText支持中文,需要两个jar包:

              iText包:itextpdf-5.3.5.jar(这里用的是5.3.5)

              iText语言包:iTextAsian.jar

要使iText能够输出中文,首先需要创建一个字体对象,代码如下:

// 产生PDF字体
    public static Font setChineseFont() {
        BaseFont bf = null;
        Font fontChinese = null;
        try {
            bf = BaseFont.createFont("resources/SIMKAI.TTF",
                    BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            fontChinese = new Font(bf, 12, Font.NORMAL);
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return fontChinese;
    }

上面的SIMKAI.FF是字体文件,可在C:\\WINDOWS\\Fonts下找到,我这使用的是相对路径,所以就在项目根目录创建了一个resources目录用来存在项目资源。

到这里,配置中文字体Ok,只要在使用iText生成pdf内容时,将上述方法返回的Font对象传入即可。

以下是pdf添加段落,为段落制定字体的代码:

         /**
                 * setChineseFont()是上面创建字体的方法
                  */
                doc.add(new Paragraph("太极~~", setChineseFont()));

这样,中文输出就OK了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM