我正在使用下面的代码,但这不起作用,它只在底部显示一行,而我希望每页底部都有一段。
public void onEndPage(PdfWriter writer, Document document) {
Rectangle rect = writer.getBoxSize("art");
ColumnText.showTextAligned(writer.getDirectContent(),
Element.ALIGN_LEFT, new Phrase(ActivityWaTestamentInput.pDFHeaderText,headerFont),
rect.getLeft(), rect.getTop(), 0);
ColumnText.showTextAligned(writer.getDirectContent(),
Element.ALIGN_LEFT, new Paragraph(ActivityWaTestamentInput.pDFFooterText,footerFont),
rect.getLeft() , rect.getBottom() - 18, 0);
如文档所示,ColumnText.showTextAligned()
将只显示一行。如果您需要多行,那么您也可以使用ColumnText
,但您需要以不同的方式使用它。
请在StackOverflow上下载免费电子书《最佳iText问题》。在"文本的绝对定位"一节中,您会发现几个涉及ColumnText
的示例。
以下是一些你应该检查的问题和答案:
- 如何将字符串放入矩形中
- 如何在多行文字周围绘制矩形
- i短语在ColumnText中的文本位置
这是这些问题的答案之一的代码片段:
ColumnText ct = new ColumnText(cb);
ct.setSimpleColumn(120f, 500f, 250f, 780f);
Paragraph p = new Paragraph("This is a long paragraph that doesn't"
+ "fit the width we defined for the simple column of the"
+ "ColumnText object, so it will be distributed over several"
+ "lines (and we don't know in advance how many).");
ct.addElement(p);
ct.go();
我硬编码的位置:
llx = 120;
lly = 500;
urx = 250;
ury = 780;
这是一个左下角(120500)、宽度为130、高度为380的矩形。如果希望文本显示在页面底部,则需要调整这些值。