zoukankan      html  css  js  c++  java
  • 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了。

  • 相关阅读:
    Kendo
    过河
    数组分组(简单dp)
    Codeforces Round #604 (Div. 2)(A-E)
    HDU1253
    HDU1026
    linux常用命令(二) --目录操作
    linux常用命令(一)--ls
    hdu 1072
    Codeforces Round #597 (Div. 2)(A-D)
  • 原文地址:https://www.cnblogs.com/jston/p/2888472.html
Copyright © 2011-2022 走看看