大家一般都使用开源产品iText输出Pdf文档,方便又快捷,但是在对中文处理时遇到一些小麻烦,我在做一个项目时也遇到了同样的问题,好在通过网络和查资料解决了,总结一些经验出来,希望对道友有些帮助作用.
1.先决条件
要使用中文,除了常规的itext-1.3.1.jar(目前我用的版本,现在版本可能更高了),iTextAsian.jar也是必要的,否则以后的工作都无法开展.
2.使用中文的关键.
关键就是不能直接使用文字而必须使用字体,字体定义如下所示:
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
这两句你可以直接拷贝使用.
然后请看输出中文段落的用法:
Paragraph paragraph = new Paragraph(bug.getTitle(), FontChinese);
document.add(paragraph);
下面是在表格中输出中文的方法:
Table tb = new Table(6, 1);
tb.addCell(new Phrase("序号", FontChinese), new Point(0, 0));
tb.addCell(new Phrase("标题", FontChinese), new Point(0, 1));
tb.addCell(new Phrase("内容", FontChinese), new Point(0, 2));
tb.addCell(new Phrase("创建者", FontChinese), new Point(0, 3));
tb.addCell(new Phrase("责任人", FontChinese), new Point(0, 4));
tb.addCell(new Phrase("创建时间", FontChinese), new Point(0, 5));
可以看出,对文字设定中文字体是关键,其它种类(远东字体)的文字也可以类推,这里就留给读者自己发挥了.
