我可以使用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);
答案 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();
定义x1
,y1
,x2
和y2
的值,使所有文字都适合矩形(不会出现在文本中) t fit将被省略),并以这种方式放置在页面的底部。