Java iText PDF-如何添加多行页脚?
我可以使用iText PDF向生成的PDF添加单行页脚,但我需要添加多行页脚 我尝试过用Java的新行字符(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
\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
的值,使所有文本都适合矩形(不适合的文本将被忽略),并将其放置在页面底部