c#导出PDF (5)

通常,当文本不能放在一行时,文本将被分割成不同的部分,iText首先会查找分割符,如果没有找到,文本将在行尾被截断。有一些预定的分割符如“ ”空格和“-”连字符,但是你可以使用setSplitCharacter方法来覆盖这些默认值。在示例代码0208中,你可以看到当到达行尾时一个块是如何被分割的。然后分隔符被改成点“.”,该行在该字符处被分割。

第三章 锚点、列表和注释

锚点

我们都知道HTML中的超文本链接,当我们点击某些语句,你能够跳转到网上的其他页。在PDF中也可以实现这种功能。事实上,在第十一章整个章节中有关于PDF链接的介绍,但这是iText的更高级的应用,本章中我们处理简单的iText。

如果你想在文档中添加一个外部链接(例如使用URL链接到WEB上的其他文档),你可以简单地使用Anchor对象,它派生于Phrase对象,使用方法相同。只有两种额外方法定义两种额外变量:setName和 setReference。

外部链接示例:

Anchor anchor = new Anchor("website", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE, new Color(0, 0, 255)));

anchor.Reference = "http://itextsharp.sourceforge.net";

anchor.Name = "website";

如果你想添加内部链接,你需要选择该链接不同的名称,就象你相位在HTML中利用名称作为锚点一样。为达到该目的,你需要添加一个“#”。

内部链接示例:

Anchor anchor1 = new Anchor("This is an internal link");

anchor1.Name = "link1";

Anchor anchor2 = new Anchor("Click here to jump to the internal link");

anchor.Reference = "#link1";

这两个链接的例子请见示例代码0301。

列表

通过类List 和ListItem,你可以添加列表到PDF文件中,对于列表你还可以选择是否排序。

排序列表示例:

List list = new List(tr, 20);

list.Add(new ListItem("First line"));

list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?"));

list.Add(new ListItem("Third line"));

结果如下:

First line

The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?

Third line

不排序示例如下:

List overview = new List(false, 10);

overview.Add(new ListItem("This is an item"));

overview.Add("This is another item");

结果如下:

This is an item

This is another item

你可以通过setListSymbol方法更改列表符号:

// 用字符串作为列表符号

list1.ListSymbol = "*";

// 用Chunk 作为列表符号(包含“?”字符)

list2.ListSymbol = new Chunk("\?", FontFactory.getFont(FontFactory.HELVETICA, 20));

//用图片作为列表符号

list3.ListSymbol = new Chunk(Image.getInstance("myBullet.gif"), 0, 0);

还可以使用setIndentationLeft和setIndentationRight方法设置缩排,列表符号的缩排在构造函数中设置。更多的例子请参见示例代码0302。

注释

iText支持不同风格的注释。

u 文本注释:

你可以添加一小段文本到你的文档中,但它并非文档内容的一部分,注释有标题和内容:

Annotation a = new Annotation(

"authors",

"Maybe it\'s because I wanted to be an author myself that I wrote iText.");

u 外部链接注释:

你需要指定一个可点击的矩形和一个字符串(URL描述)或URL对象:

Annotation annot = new Annotation(100f, 700f, 200f, 800f, new URL("http://www.lowagie.com"));

Annotation annot = new Annotation(100f, 700f, 200f, 800f, "http://www.lowagie.com");

u 外部PDF文件链接注释:

你需要指定一个可点击的矩形和一个字符串(文件名称)和目的文件或页码。

Annotation annot = new Annotation(100f, 700f, 200f, 800f, "other.pdf", "mark");

Annotation annot = new Annotation(100f, 700f, 200f, 800f, "other.pdf", 2);

u 指定行为链接注释

你需要指定一个可点击的矩形和一个指定的行为:

Annotation annot = new Annotation(100f, 700f, 200f, 800f, PdfAction.FIRSTPAGE);

u 应用程序链接注释:

你需要指定一个可点击的矩形和一个应用程序:

Annotation annot = new Annotation(300f, 700f, 400f, 800f, "C://winnt/notepad.exe", null, null, null);

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

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