在android中使用iText库在底部动态添加段落



我正在使用下面的代码,但这不起作用,它只在底部显示一行,而我希望每页底部都有一段。

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的矩形。如果希望文本显示在页面底部,则需要调整这些值。

最新更新