DOWNLOAD :
http://www.java2s.com/Code/Jar/i/Downloaditextasianjar.htm
INF :
http://www.656463.com/article/350
摘要: 在iText生成PDF入门实例我们已经预告了要解决显示中文的问题,这一节理所当然是Itext显示中文的三大方案
如果在 上一节中你想输出“iText导出PDF入门实例”,会应该会用以下代码:
document.add(new Paragraph("iText导出PDF入门实例"));
很不幸,你看看输出的PDF显示的内容是“iTextPDF”,很明显中文没有输出来
有三种方法解决iText显示中文问题。
方法一:使用Windows系统字体(TrueType)
1
2
3
|
BaseFont baseFont = BaseFont.
createFont( "C:/Windows/Fonts/SIMYOU.TTF" ,
BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
|
方法二:使用itext-asian.jar中的字体
这个包去哪里拿?用SVN checkout《iTixt in action》这本书的源码里面有,
地址是:https://itext.svn.sourceforge.net/svnroot/itext/book
1
2
|
BaseFont baseFont = BaseFont.createFont( "STSongStd-Light" ,
"UniGB-UCS2-H" , false );
|
方法三:使用资源字体(ClassPath)
要把字体加到classPath中【加到src目录】,要不会出现/SIMYOU.TTF not found as file or resource.异常
1
2
|
BaseFont baseFont = BaseFont.createFont( "/SIMYOU.TTF" ,
BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
|
完整代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public static void createPdf(String filename)
throws DocumentException,IOException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(filename));
document.open();
createFont( "C:/Windows/Fonts/SIMYOU.TTF" ,
BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
.createFont( "STSongStd-Light" , "UniGB-UCS2-H" , false );
BaseFont baseFont = BaseFont
.createFont( "/SIMYOU.TTF" ,
BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont);
document.add( new Paragraph( "iText导出PDF入门实例" ,font));
document.close();
}
|
|
沒有留言:
張貼留言