iText生成pdf文件基本使用

使用的版本是目前最新的5.0.3,可以在http://itextpdf.com/index.php下载,中文语言包下的可能不是最新的,导致调试出了问题,最后用了个笨方法解决的。
//1.建立Document实例
Document document = new Document();
//2.建立一个书写器与Document对象关联,通过书写器将文档写入磁盘
PdfWriter.getInstance(document, new FileOutputStream("f:/test.pdf"));
//3.打开文档
document.open();
//4.向文档中添加内容
	//a)添加一个图片
	Image img = Image.getInstance("f:/pdf.jpg");
	img.setAlignment(Image.LEFT|Image.TEXTWRAP);
	img.scalePercent(30f);
	//document.add(img);
	//b)添加一个段落
	document.add(new Paragraph("iText HelloWorld"));
	//c)添加一个块
	document.add(new Chunk("Text is underline", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 12, Font.UNDERLINE)));
	//d)添加中文,需要引入iTextAsian.jar
	BaseFont bfChi = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
	Font fontChi = new Font(bfChi, 12, Font.NORMAL);
	document.add(new Paragraph("中文测试", fontChi));
	//e)添加一个表格
	//表格内部格式和html中的格式差不多
	PdfPTable table = new PdfPTable(4);
	table.setWidthPercentage(100);   
	table.setWidthPercentage(100);   
	table.addCell (new Paragraph ("学号",fontChi));   
	PdfPCell cell = new PdfPCell (new Paragraph ("00000001",fontChi));   
	cell.setColspan (3);   
	table.addCell (cell);   
	table.addCell (new Paragraph ("姓名",fontChi));   
	table.addCell (new Paragraph ("张三",fontChi));   
	table.addCell (new Paragraph ("总成绩",fontChi));   
	table.addCell (new Paragraph ("160",fontChi));
	
	table.addCell (new Paragraph ("学号",fontChi));   
	PdfPCell cell2 = new PdfPCell (new Paragraph ("00000002",fontChi));   
	cell2.setColspan (3);   
	table.addCell (cell2); 
	table.addCell (new Paragraph ("姓名",fontChi));   
	table.addCell (new Paragraph ("李四",fontChi));   
	table.addCell (new Paragraph ("总成绩",fontChi));   
	table.addCell (new Paragraph ("167", fontChi)); 
	document.add(table);
//5.关闭文档
document.close();

注释已经很详细了,说一下中文包的问题,按照正常的流程走下来,会报:Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.我理解的大概是语言包没找到吧。因为iText5.X之前,引用iTextAsian.jar中的语言包是在com/lowagie/text/pdf/fonts,而现在是从com/itextpdf/text/pdf/fonts加载的,但是我又不知道最新的包在哪下,所以直接在包中将lowagie改成itextpdf,运行OK。

你可能感兴趣的:(html,PHP,F#,D语言)