iText PDF - 如何添加多行页脚?

时间:2017-08-22 07:31:44

标签: java pdf itext footer

我可以使用iText PDF为生成的PDF添加单行页脚,但我需要添加多行页脚。

我尝试用Java的新行字符(\n)连接两个字符串,但没有机会(参见代码#1 )。此外,尝试通过类float x, float y的{​​{1}}方法的onEndPage参数设置多行页脚。也没有用(见代码#2 )。

这是我到目前为止所尝试的内容:

代码#1

PdfPageEventHelper

代码#2

Phrase phrase = new Phrase("line1" + "\n" + "line2", fontNormal10);
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, phrase, 40, 30, 0);

1 个答案:

答案 0 :(得分:2)

您正在使用ColumnText.showTextAligned()。这是一种可用于添加单行文本的方法。您不应期望它能够添加多行文本。

如果要添加多行,则必须定义Rectangle,并且必须使用ColumnText在此矩形内添加内容。这当然是在官方文档中解释的,更具体地说,在Absolute positioning of text (iText 5)部分中您将找到问题How to add text inside a rectangle?

该问题答案中的代码是C#代码,但很容易将其转换为Java:

Rectangle rect = new Rectangle(x1, y1, x2, y2);
ColumnText ct = new ColumnText(writer.getDirectContent());
ct.SetSimpleColumn(rect);
ct.addElement(new Paragraph("This is the text added in the rectangle"));
ct.go();

定义x1y1x2y2的值,使所有文字都适合矩形(不会出现在文本中) t fit将被省略),并以这种方式放置在页面的底部。