利用iText.jar操作pdf文档

时间:2021-02-14 05:40:08

1.需要的jar包

利用iText.jar操作pdf文档

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://pan.baidu.com/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.执行结果如下
利用iText.jar操作pdf文档