c#导出PDF (6)

我们无须在页面上指定一个位置,iText会内部处理。你能够看到iText添加文本注释在页面上当前位置下面,第一个在段后第一行下面,第二个在短句结束处的下面。

所有其他注释需要指定想匹配的矩形区域,在示例代码0304中,我们画了一些正方形(使用的函数将在第十章中介绍),为每个正方形添加了一些链接注释。

第四章 页眉页脚、章节、区域和绘图对象

使用在第三至第五章中描述的大量简单iText对象可以避免更多的高级话题(第九至十二章),紧记这些简单对象限制的功能,大量复杂的功能在第三部分。

页眉页脚

HeaderFooter对象可以于为文档每页添加页眉和页脚。这样一个页眉或页脚包含一个标准的短句(如果需要)和当前页码,如果你需要更多复杂的页眉和页脚(使用表格或者第几页共几页),请阅读第十二章。

在示例代码0401中,你可以看到我们首先添加了一个包含页码没有任何边框的页脚。

HeaderFooter footer = new HeaderFooter(new Phrase("This is page: "), tr);

footer.Border = Rectangle.NO_BORDER;

document.Footer = footer

我们还可以使用下面的构造函数:

HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase("."));

构造函数知道你希望添加一个页码和将其放置在两个短句间,如果你只是设置一个HeaderFooter而不改变边框,页眉或页脚的文本上下各有一条直线。

HeaderFooter header = new HeaderFooter(new Phrase("This is a header without a page number"), false);

document.Header = header;

章节和区域

在第十一章中将描述如何构建一个树的外观,如果你只需要一个简单的章节和(子)区域,你可以用Chapter对象和Section对象自动构建一个树:

Paragraph cTitle = new Paragraph("This is chapter 1", chapterFont);

Chapter chapter = new Chapter(cTitle, 1);

Paragraph sTitle = new Paragraph("This is section 1 in chapter 1", sectionFont);

Section section = chapter.addSection(sTitle, 1);

在示例代码0402中,我们添加了一系列的章节和子区域,你可以看到完整的树形,树形结构默认打开,如果你希望部分节点关闭,你必须使用用BookmarkOpen属性其值为false,详见示例代码0403。

图形

如果你想添加图形,如直线、圆、几何窗体,你应该阅读读十章,但如果你只需要一些有限的功能,你可以使用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。

当你想给页面加一个边框或者在文本当前位置画一条水平线时,图形对象非常有用。下面的方法用指定的宽度、间距(如果需要)和颜色画一个边框。

p lic void setBorder(float linewidth, float extraSpace);

p lic void setBorder(float linewidth, float extraSpace, Color color);

下面的方法用指定的宽度(如果需要)和颜色画一条水平线,线的长度是指定两边缘间可用面积的的百分比。

p lic void setHorizontalLine(float linewidth, float percentage)

p lic void setHorizontalLine(float linewidth, float percentage, Color color)

示例代码5中,有一个离边界5磅,线宽3磅的边框,还有两条水平线,一条为黑色,5磅宽,可用空间的100%,另外一条为红色,线宽3磅,可用空间的80%。

第五章 表格

重点:如果你仅仅生成PDF文件(没有XML、HTML、RTF……),使用类pdfPTable代替类Table更好。

一些简单的表格

一个表格是包含单元格排列成矩阵的矩形区域。表格的距阵并不要求是m×n的,它可以有空洞或者单元格比单个的要大。

创建一个表格最通用的办法是预先知道有几行几列:

p lic Table(int columns, int rows);

在示例代码0501中,我们构建了一个简单的表:

Table aTable = new Table(2,2);

aTable.addCell("0.0");

aTable.addCell("0.1");

aTable.addCell("1.0");

aTable.addCell("1.1");

该表格有两行两列,单元格被自动添加,从第一行第一列开始,然后是第二列,当一行满后,下一单元格自动添加到下一行的第一列中。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpgws.html