itext 解决中文问题

来源:互联网 发布:java简历技能 编辑:程序博客网 时间:2024/05/17 02:02


iText解决中文问字体问题显示中文

今天在用itext 生成 PDF 报表的时候里面有中文的,生成PDF报表后中文都不显示,为了解决这个问题,找了很多例子,觉得这个例子讲的最全,现在分享下。

总结一下,基本上有三种方法解决iText显示中文问题。

方法一:使用Windows系统字体(TrueType)

方法二:使用iTextAsian.jar中的字体

方法三:使用资源字体(ClassPath)

由于比较简单,直接上代码了。

[java]view plaincopyprint?

1. package oliver.itext.demo;    

2. import java.io.File;    

3. import java.io.FileOutputStream;    

4. import java.io.IOException;    

5. import java.io.OutputStream;    

6. import com.itextpdf.text.Document;    

7. import com.itextpdf.text.DocumentException;    

8. import com.itextpdf.text.Font;    

9. import com.itextpdf.text.Paragraph;    

10.import com.itextpdf.text.pdf.BaseFont;    

11.import com.itextpdf.text.pdf.PdfWriter;    

12./**  

13. * <b>PDF2Chinese</b>  

14. * <p><b>详细说明:</b></p>  

15. * <!-- 在此添加详细说明 -->  

16. * 三种方法解决iText中文问题。  

17. * <p><b>修改列表:</b></p>  

18. * <table width="100%" cellSpacing=1 cellPadding=3 border=1>  

19. * <tr bgcolor="#CCCCFF"><td>序号</td><td>作者</td><td>修改日期</td><td>修改内容</td></tr>  

20. * <!-- 在此添加修改列表,参考第一行内容 -->  

21. * <tr><td>1</td><td>Oliver</td><td>2010-10-8 上午09:40:44</td><td>建立类型</td></tr>  

22. *   

23. * </table>  

24. * @version 1.0  

25. * @author Oliver  

26. * @since 1.0  

27. */    

28.public class PDF2Chinese    

29.{    

30.    public static void main(String[] args) throws DocumentException, IOException    

31.    {    

32.        Document document = new Document();    

33.        OutputStream os = new FileOutputStream(new File("chinese.pdf"));    

34.        PdfWriter.getInstance(document,os);    

35.        document.open();    

36.        //方法一:使用Windows系统字体(TrueType)    

37.        BaseFont baseFont = BaseFont.createFont("C:/Windows/Fonts/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    

38.            

39.        //方法二:使用iTextAsian.jar中的字体    

40.        //BaseFont baseFont = BaseFont.createFont("STSong-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    

41.            

42.        //方法三:使用资源字体(ClassPath)    

43.        ////BaseFont baseFont = BaseFont.createFont("/SIMYOU.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);    

44.            

45.        Font font = new Font(baseFont);    

46.        document.add(new Paragraph("解决中文问题了!",font));    

47.        document.close();    

48.    }    

49.}    

好了,现在可以打开生成的chinese.pdf看到中文了!

0 0
原创粉丝点击