五、表格处理
iText中处 理表格的类为:com.lowagie.text.Table和com.lowagie.text.PDF.PDFPTable,对于比较简单的表格处理 可以用com.lowagie.text.Table,但是如果要处理复杂的表格,这就需要 com.lowagie.text.PDF.PDFPTable进行处理。这里就类com.lowagie.text.Table进行说明。
类com.lowagie.text.Table的构造函数有三个:
①Table (int columns) ②Table(int columns, int rows) ③Table(Properties attributes)
参数columns、rows、attributes分别为表格的列数、行数、表格属性。创建表格时必须指定表格的列数,而对于行数可以不用指定。
建立表格之后,可以设定表格的属性,如:边框宽度、边框颜色、衬距(padding space 即单元格之间的间距)大小等属性。下面通过一个简单的例子说明如何使用表格,代码如下:
1:Table table = new Table(3); 2:table.setBorderWidth(1); 3:table.setBorderColor(new Color(0, 0, 255)); 4:table.setPadding(5); 5:table.setSpacing(5); 6:Cell cell = new Cell("header"); 7:cell.setHeader(true); 8:cell.setColspan(3); 9:table.addCell(cell); 10:table.endHeaders(); 11:cell = new Cell("example cell with colspan 1 and rowspan 2"); 12:cell.setRowspan(2); 13:cell.setBorderColor(new Color(255, 0, 0)); 14:table.addCell(cell); 15:table.addCell("1.1"); 16:table.addCell("2.1"); 17:table.addCell("1.2"); 18:table.addCell("2.2"); 19:table.addCell("cell test1"); 20:cell = new Cell("big cell"); 21:cell.setRowspan(2); 22:cell.setColspan(2); 23:table.addCell(cell); 24:table.addCell("cell test2");
运行结果如下:
header example cell with colspan 1 and rowspan 2 1.1 2.1 1.2 2.2 cell test1 big cell cell test2
代码1-5行用于新建一个表格,如代码所示,建立了一个列数为3的表格,并将边框宽度设为1,颜色为蓝色,衬距为5。
代码6-10行用于设定表格的表头,第7行cell.setHeader(true);是将该单元格作为表头信息显示;第8行 cell.setColspan(3);指定了该单元格占3列;为表格添加表头信息时,要注意的是一旦表头信息添加完了之后,必须调用 endHeaders()方法,如第10行,否则当表格跨页后,表头信息不会再显示。
代码11-14行是向表格中添加一个宽度占一列,长度占二行的单元格。
往表格中添加单元格(cell)时,按自左向右、从上而下的次序添加。如执行完11行代码后,表格的右下方出现2行2列的空白,这是再往表格添加单元格时,先填满这个空白,然后再另起一行,15-24行代码说明了这种添加顺序。 |