转自:http://blog.csdn.net/ol_beta/article/details/5926451
版权声明:本文为博主原创文章,未经博主允许不得转载。
总结一下,基本上有三种方法解决iText显示中文问题。
方法一:使用Windows系统字体(TrueType)
方法二:使用iTextAsian.jar中的字体
方法三:使用资源字体(ClassPath)
由于比较简单,直接上代码了。
-
package
oliver.itext.demo;
-
import
java.io.File;
-
import
java.io.FileOutputStream;
-
import
java.io.IOException;
-
import
java.io.OutputStream;
-
import
com.itextpdf.text.Document;
-
import
com.itextpdf.text.DocumentException;
-
import
com.itextpdf.text.Font;
-
import
com.itextpdf.text.Paragraph;
-
import
com.itextpdf.text.pdf.BaseFont;
-
import
com.itextpdf.text.pdf.PdfWriter;
-
/**
-
* <b>PDF2Chinese。</b>
-
* <p><b>详细说明:</b></p>
-
* <!– 在此添加详细说明 –>
-
* 三种方法解决iText中文问题。
-
* <p><b>修改列表:</b></p>
-
* <table width=”100%” cellSpacing=1 cellPadding=3 border=1>
-
* <tr bgcolor=”#CCCCFF”><td>序号</td><td>作者</td><td>修改日期</td><td>修改内容</td></tr>
-
* <!– 在此添加修改列表,参考第一行内容 –>
-
* <tr><td>1</td><td>Oliver</td><td>2010-10-8 上午09:40:44</td><td>建立类型</td></tr>
-
*
-
* </table>
-
* @version 1.0
-
* @author Oliver
-
* @since 1.0
-
*/
-
public
class
PDF2Chinese
-
{
-
public
static
void
main(String[] args)
throws
DocumentException, IOException
-
{
-
Document document =
new
Document();
-
OutputStream os =
new
FileOutputStream(
new
File(
“chinese.pdf”
));
-
PdfWriter.getInstance(document,os);
-
document.open();
-
//方法一:使用Windows系统字体(TrueType)
-
BaseFont baseFont = BaseFont.createFont(
“C:/Windows/Fonts/SIMYOU.TTF”
,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
-
-
//方法二:使用iTextAsian.jar中的字体
-
//BaseFont baseFont = BaseFont.createFont(“STSong-Light”,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
-
-
//方法三:使用资源字体(ClassPath)
-
BaseFont baseFont = BaseFont.createFont(“/SIMYOU.TTF”,BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
-
-
Font font =
new
Font(baseFont);
-
document.add(
new
Paragraph(
“解决中文问题了!”
,font));
-
document.close();
-
}
-
}
好了,现在可以打开生成的chinese.pdf看到中文了!