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

Java iText PDF-如何添加多行页脚?,java,pdf,itext,footer,Java,Pdf,Itext,Footer,我可以使用iText PDF向生成的PDF添加单行页脚,但我需要添加多行页脚 我尝试过用Java的新行字符(\n)连接两个字符串,但没有机会(参见代码1)。此外,还尝试通过类PdfPageEventHelper的onEndPage方法的float x,float y参数设置多行页脚。也不起作用(见代码#2) 以下是我迄今为止所尝试的: 代码#1 Phrase phrase = new Phrase("line1" + "\n" + "line2", fontNormal10); ColumnTe

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

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

以下是我迄今为止所尝试的:

代码#1

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

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

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

如果要添加多行,必须定义一个
矩形
,并且必须使用
ColumnText
将内容添加到此矩形内。这(当然)在官方文件中有解释,更具体地说,在您将发现问题的部分

这个问题答案中的代码是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();
定义
x1
y1
x2
y2
的值,使所有文本都适合矩形(不适合的文本将被忽略),并将其放置在页面底部