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

来源:互联网 发布:微信直接打开淘宝 编辑:程序博客网 时间:2024/04/30 21:11

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

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

 

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

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

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

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

[java] view plain copy
  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
原创粉丝点击