iText中文帮助文档 联系客服

发布时间 : 星期二 文章iText中文帮助文档更新完毕开始阅读

? 古希腊语

因为古希腊语经常使用,在类Phrase的构造函数中有一个特征:将一个字符串作为参数(如果你想避免这种情况,你只能使用块工作而不能使用字符串),正如你在示例代码0203中看到的,这个特征自动地将913至937(除903)和945至969(古希腊的ASCII值)范围内的所有字体改为希腊符号。 ? 非主要性

与其说这是一个特征,不如说是一个缺陷,但无论如何,这使创建一个非主要性的短句或段落成为可能,这将产生一个由下向上书写的临时作用(参见示例代码0204)。如果你想在一页中将一些位置移动到上面时可能有用。 说明,当你穿越上边届时无法检查,也没有办法让你回到前一页。

段落

段落是一系列块和(或)短句。同短句一样,段落有确定的间距。用户还可以指定缩排;在边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加到文档中的每一个段落将自动另起一行。有几种办法建立一个段落,如:

Paragraph p1 = new Paragraph(new Chunk(\paragraph.\FontFactory.getFont(FontFactory.HELVETICA, 12)));

Paragraph p2 = new Paragraph(new Phrase(\paragraph.\FontFactory.getFont(FontFactory.HELVETICA, 12)));

Paragraph p3 = new Paragraph(\is my third paragraph.\FontFactory.getFont(FontFactory.HELVETICA, 12)); 所有有些对象将被添加到段落中:

p1.add(\can add strings, \p1.add(new Chunk(\can add chunks \p1.add(new Phrase(\you can add phrases.\

说明:一个段落有一个且仅有一个间距,如果你添加了一个不同字体的短句或块,原来的间距仍然有效,你可以通过SetLeading来改变间距,但是段落中所有内容将使用新的中的间距。见示例代码0205。 ? 保持段落的整体性

在示例代码0206中,我们使用了setKeepTogether(true)方法来试图将一个段落放在同一页中,该方法并不是始终有效,举个例子,第一段不能刚好在一页中,于是被分成了两部分。第二段被放置在第二页,但第三段顺沿到了第三页上。

字体的延续

你应该掌握字体延续的一些规则,这些规则的应用见示例代码0207,当我们将一些内容用指定的字体(非默认字体)创建一个短句或者段落后再添加更多内容时,初始对象的字体风格将被延续,请看“Hello 1!”和“Hello 2”: Phrase myPhrase = new Phrase(\Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase(\other font \new Font(Font.HELVETICA, 8, Font.ITALIC)));

myPhrase.Add(new Phrase(\Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC))); document.Add(myPhrase);

我们由Times New Roman 粗体字开始,添加一些文本使用Helvetica字体而不指定风格,我们发现文本被改变成了粗体,当我们再加一些文本使用Times New Roman字体和斜体风格,结果变成了粗斜体。

如果我们使用FontFactory来创建字体,字体风格不会被延续,因为FontFactory使用了另外的技术构建一个字体: myPhrase = new Phrase(\

FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase(\

FontFactory.getFont(FontFactory.HELVETICA, 8, Font.ITALIC))); myPhrase.Add(new Phrase(\FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.ITALIC))); document.Add(myPhrase);

在上面的代码中,使用Helvetica字体的文本风字体没有指定(既不是粗体也不是斜体)。采用Times New Roman的额外文本仅仅显示为斜体。 你也看到我们添加了一个段落,添加该段落就如同一个短句。 Paragraph myParagraph = new Paragraph(\Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myParagraph.Add(new Paragraph(\sentence.\document.Add(myParagraph);

你可以不这样做,但将失去字体风格的延续,首先不用任何字体创建段落(例中我们仅仅给字体出间距为1.5倍),然后添加内容的不同部分。

myParagraph = new Paragraph(12);

myParagraph.Add(new Paragraph(\Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myParagraph.Add(new Paragraph(\is the end of the sentence.\new Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC))); document.Add(myParagraph);

如果你使用了Phrase对象,你同样会失去字体风格的延续: myPhrase = new Phrase(12);

myPhrase.Add(new Phrase(\8, Font.BOLD)));

myPhrase.Add(new Phrase(\newFont(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase); ? 更改分割符

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

第三章 锚点、列表和注释

锚点

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

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

Anchor anchor = new Anchor(\

FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE, new Color(0, 0, 255)));

anchor.Reference = \anchor.Name = \

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

Anchor anchor1 = new Anchor(\