如果你想添加图形,如直线、圆、几何窗体,你应该阅读读十章,但如果你只需要一些有限的功能,你可以使用Graphic对象 Graphic grx = new Graphic(); //添加一个矩形
grx.rectangle(100, 700, 100, 100); // 添加一条斜线
grx.moveTo(100, 700); grx.lineTo(200, 800); // 将图形显示出来 grx.stroke(); document.Add(grx);
完整的代码请见示例代码0404,如果想看到全部的方法,请参见PdfContentByte对象API。
当你想给页面加一个边框或者在文本当前位置画一条水平线时,图形对象非常有用。下面的方法用指定的宽度、间距(如果需要)和颜色画一个边框。 public void setBorder(float linewidth, float extraSpace); public void setBorder(float linewidth, float extraSpace, Color color);
下面的方法用指定的宽度(如果需要)和颜色画一条水平线,线的长度是指定两边缘间可用面积的的百分比。
public void setHorizontalLine(float linewidth, float percentage)
public void setHorizontalLine(float linewidth, float percentage, Color color)
示例代码5中,有一个离边界5磅,线宽3磅的边框,还有两条水平线,一条为黑色,5磅宽,可用空间的100%,另外一条为红色,线宽3磅,可用空间的80%。
第五章 表格
重点:如果你仅仅生成PDF文件(没有XML、HTML、RTF??),使用类pdfPTable代替类Table更好。
一些简单的表格
一个表格是包含单元格排列成矩阵的矩形区域。表格的距阵并不要求是m×n的,它可以有空洞或者单元格比单个的要大。
创建一个表格最通用的办法是预先知道有几行几列: public Table(int columns, int rows); 在示例代码0501中,我们构建了一个简单的表: Table aTable = new Table(2,2); aTable.addCell(\aTable.addCell(\aTable.addCell(\aTable.addCell(\
该表格有两行两列,单元格被自动添加,从第一行第一列开始,然后是第二列,当一行满后,下一单元格自动添加到下一行的第一列中。
也可以将单元格添加到表中指定的位置,如示例代码0502,别了要添加System.Drawing.dll引用,以获得Point对象,我们创建了一个4行4列的表格然后添加一些单元格到随机的位置上: Table aTable = new Table(4,4); aTable.AutoFillEmptyCells = true; aTable.addCell(\aTable.addCell(\aTable.addCell(\aTable.addCell(\
你可以看到我们将AutoFillEmptyCells属性设置为true,这将自动、默认的单元格布局填充空的单元格,如果我们忘记了这样做(就象本例中第二个表格),将没有额外的单元格添加,不包含任何单格的行也将被忽略,在本例中,第一行将不显示,因为该行是空行。
经常用数据库查询结果来填充表格,大多数情况下,你预先并不知道到底需要多少行,这就是为什么还有第二个构造函数的原因: public Table(int columns);
iText根据需要自动添加行,在示例代码0503中,初始化了4行4列,当我们添加第6行和第7行的单元格时,iText自动增加行数到7。 增加列数也是可能的,但是有点麻烦,它不能自动生成,你必须使用addColumns方法并设置列宽,详见示例代码0504。
一些表格参数
前面例子中的表格并不美观,我们可以设置大量的参数来改变表格外观。类Table和类Cell派生于类Rectangle,我们可以用大量典型的Rectangle方法,让我们来看看示例代码0505。 Table table = new Table(3); table.BorderWidth = 1;
table.BorderColor = new Color(0, 0, 255); table.Cellpadding = 5; 5. table.Cellspacing = 5; Cell cell = new Cell(\ cell.Header = true; cell.Colspan = 3; table.addCell(cell);
10. cell = new Cell(\ cell.Rowspan = 2;
cell.BorderColor = new Color(255, 0, 0); table.addCell(cell); table.addCell(\ 15. table.addCell(\ table.addCell(\ table.addCell(\ table.addCell(\ cell = new Cell(\ 20. cell.Rowspan = 2; cell.Colspan = 2;
cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0); table.addCell(cell); table.addCell(\ 25. document.Add(table);
? 单元格间距和填距
在第4行中,我们设置了表格的填距,就是单元格边界和内容间一定数量的空间,在前面的示例中,我们看到文本紧贴边界,通过使用用特定的填距,就可以避免。
在第5行中,我们设置了表格的间距,就是单元格和表格边界间的一定数量的空间,不同的单元格间使用了半数空间,具体代码见示例代码0506。 ? 对齐方式
在示例代码0506中,我们也改变了单元格“big cell”的对齐方式: cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.VerticalAlignment = Element.ALIGN_MIDDLE; 注:不能总是相信垂直对齐方式。 ? 边框
如果我们象在第14行中那样添加了一个单元格,将使用默认的单元格布局(默认的布局可以SetDefalut方法改变),如果我们使用了Cell对象,我们可以控制每一个单元格的布局。 在第2和第三中,我们设置整个表格的边框宽度和边框颜色,我们在单元格上可以使用的方法,在12行中,每个单元格用“box”作为边界绘制(就象在HTML中),但是示例代码0507显示,我们在PDF中有大量更多可能。 ? 颜色 在第22行中,你也能定义单元格的背景色,在示例代码0507中,我们不使用颜色只是用一定灰度填充。 ? 行跨和列跨 最后,你也能设置单元格的行跨(11/20行)和列跨(8/21列)。通过这种方法可以将几个单元格合并成一个大的单元格。 ? 备注 第7行在PDF中没有意义,用于生成HTML,在HTML中并不是总能产生同样的布局,PDF表格有点象: header example cell with colspan 1 and rowspan 2 1.1 2.1 1.2 2.2 cell test1 big cell cell test2 ? 表格分割
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库iText中文帮助文档(5)在线全文阅读。
相关推荐: