1.需要的jar包
2.如何解决中文不能输出的方法(异常分析)
iText 5.0.1生成pdf,加入iTextAsian.jar 出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.的异常。
解决办法:
1)使用winrar解压缩程序将原来的iTextAsian.jar解压,目录结构如下
iTextAsian
--com
--lowagie
--text
--pdf
--fonts
--...(字体属性文件)
2)将加压后com目录下的包名lowagie更改为itextpdf
3)在命令行转至iTextAsian目录,重新打包为iTextAsian.jar文件
命令如下:
jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/*
执行后,将新的iTextAsian.jar加入到classpath路径
(4)itext.jar采用以前的老版本
(5)此人分享的处理后的jar包地址链接: http:///s/1o66aVF0 密码: ei6a
2.编写测试程序
package com.yun.action;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
public class TestItextPdf {
/**
* @param args
* @throws DocumentException
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException,
DocumentException {
// TODO Auto-generated method stub
Document document = new Document(PageSize.A4);
PdfWriter write = PdfWriter.getInstance(document, new FileOutputStream(
"D:\\刘云生.pdf"));
document.open();
try {
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font fontChinese = new Font(bfChinese, 13, Font.NORMAL);
document.addHeader("itext", "liuyunsheng");
for (int i = 0; i < 100; i++) {
document.add(new Paragraph("刘云生", fontChinese));
document.add(new Paragraph("青岛科技大学", fontChinese));
document.add(new Paragraph("软件工程", fontChinese));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
document.close();
}
}
5.执行结果如下