在信息系统应用中,报表处理一直起着比较重要的作用。Java报表制作中最常使用的是iText组件,它是一种生成PDF报表的Java组件。本文讨论两种形式的PDF报表处理,一种是通过程序对象生成整个PDF报表文档,另一种是利用制作好的含报表的PDF文档模板,通过在模板填写数据实现数据报表。1通过编程绘制实现报表的生成对于内容动态变化的表格,适合使用程序绘制办法进行生成处理。这类表格中数据项和数据均是动态存在的。1.1使用iText编程生成含报表的PDF文档的步骤[1](1)建立Document对象。Document是PDF文件所有元素的容器。Documentdocument=newDocument();(2)建立一个与Document对象关联的书写器(Writer)。通过书写器(Writer)对象可以将具体文档存盘成需要的格式,PDFWriter可以将文档保存为PDF文件。PDFWriter.getInstance(document,newFileOutputStream("my.PDF"));(3)打开文档。如:document.open();(4)向文档中添加内容。所有向文档添加的内容都是以对象为单位的,iText中用文本块(Chunk)、短语(Phrase)和段落(Paragraph)处理文本。document.add(newParagraph("HelloWorld"));//添加一个段落值得注意的是文本中汉字的显示,默认的iText字体设置不支持中文字体,需要下载远东字体包iTex-tAsian.jar,否则不能往PDF文档中输出中文字体[2]。(5)关闭文档。如:document.close();1.2表格绘制要在PDF文件中创建表格,iText提供了两个类Table和PdfPTable。Table类用来实现简单表格,PdfPTable类则用来实现比较复杂的表格。本文主要讨论PdfPTable类的应用。(1)创建PdfPTable对象创建PdfPTable对象只需要指定列数,不用指定行数。通常生成的表格默认以80%的比例显示在页面上。例如定义3列的表格,每列的宽度分别为15%、25%和60%,语句如下:float[]widths={15f,25f,60f};PdfPTabletable=newPdfPTable(widths);用setWidthPercentage(floatwidthPercentage)方法可设置表格的按百分比的宽度。而用setTotalWidth则可设置表格按像素计算的宽度。如果表格的内容超过了300px,表格的宽度会自动加长。用setLockedWidth(true)方法可锁定表格宽度。通过表格对象的系列方法可设置表格的边界以及对齐、填充方式。(2)添加单元格表格创建完成以后,可通过addCell(Objectobject)方法插入单元格元素(PdfPCell)。其中,Object对象可以是PdfPCell、String、Phrase、Image,也可以是PdfPTable对象本身,即在表格中嵌套一个表格。通过单元格的方法可设定单元格的列跨度、边框粗细、对齐方式、填充间隙等。(3)合并单元格为了实现某些特殊的表格形式,需要合并单元格。PdfPCell类提供了setColspan(intcolspan)方法用于合并横向单元格,参数colspan为合并的单元格数。但要合并纵向单元格需要使用嵌套表格的方法。将某个子表加入单元格,且安排单元格所占列数为子表中列数,则其行跨度也就是子表中的行数。由于实际编程时,经常出现各类