利用iText包实现Java报表打印
2012-08-15丁振凡王小明吴小元邓建明
丁振凡 ,王小明 ,吴小元 ,邓建明 ,周 斌
(1.华东交通大学,江西 南昌330013;2.南昌铁路局,江西 南昌330001)
在信息系统应用中,报表处理一直起着比较重要的作用。Java报表制作中最常使用的是iText组件,它是一种生成PDF报表的Java组件。本文讨论两种形式的PDF报表处理,一种是通过程序对象生成整个PDF报表文档,另一种是利用制作好的含报表的PDF文档模板,通过在模板填写数据实现数据报表。
1 通过编程绘制实现报表的生成
对于内容动态变化的表格,适合使用程序绘制办法进行生成处理。这类表格中数据项和数据均是动态存在的。
1.1 使用iText编程生成含报表的PDF文档的步骤[1]
(1)建立Document对象。Document是 PDF文件所有元素的容器。

(2)建立一个与Document对象关联的书写器(Writer)。通过书写器(Writer)对象可以将具体文档存盘成需要的格式,PDFWriter可以将文档保存为PDF文件。

(3)打开文档。如:document.open();
(4)向文档中添加内容。所有向文档添加的内容都是以对象为单位的,iText中用文本块(Chunk)、短语(Phrase)和段落(Paragraph)处理文本。

//添加一个段落
值得注意的是文本中汉字的显示,默认的iText字体设置不支持中文字体,需要下载远东字体包iTextAsian.jar,否则不能往PDF文档中输出中文字体[2]。
(5)关闭文档。如:document.close();
1.2 表格绘制
要在PDF文件中创建表格,iText提供了两个类——Table和PdfPTable。Table类用来实现简单表格,PdfPTable类则用来实现比较复杂的表格。本文主要讨论PdfPTable类的应用。
(1)创建 PdfPTable对象
创建PdfPTable对象只需要指定列数,不用指定行数。通常生成的表格默认以80%的比例显示在页面上。例如定义3列的表格,每列的宽度分别为15%、25%和60%,语句如下:

用 setWidthPercentage(float widthPercentage)方法可设置表格的按百分比的宽度。……
