利用iText.jar操作pdf文档

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://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.执行结果如下







猜你喜欢

转载自blog.csdn.net/liuyunshengsir/article/details/50134475