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

  • Post author:
  • Post category:其他


转自:http://blog.csdn.net/ol_beta/article/details/5926451

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

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

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

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

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



  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. //方法二:使用iTextAsian.jar中的字体





  39. //BaseFont baseFont = BaseFont.createFont(“STSong-Light”,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);






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





  41. BaseFont baseFont = BaseFont.createFont(“/SIMYOU.TTF”,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);





  42. Font font =

    new


    Font(baseFont);


  43. document.add(

    new


    Paragraph(


    “解决中文问题了!”


    ,font));


  44. document.close();

  45. }

  46. }

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