边界框中的itext多行文本

时间:2009-11-05 04:13:24

标签: java text position itext multiline

有没有人知道,如何在iText中在边界框中添加多行文字(指定坐标)。

我试过

cb.showTextAligned(
    PdfContentByte.ALIGN_LEFT,
    text,
    bounds.getLeft(),
    TOTAL_HEIGHT-bounds.getTop(),
    0 );

但它不支持新行。 我也试过

PdfContentByte cb = writer.getDirectContent();
cb.moveText(300,400);
document.add(new Paragraph("TEST paragraph\nNewline"));

这支持换行但不对moveText作出反应,因此我不知道如何将它放在给定位置或更好:边界框。

我怀疑chunks或PdfTemplate或者表可能有帮助,但我(还)不知道如何把它放在一起。 TIA寻求帮助。

2 个答案:

答案 0 :(得分:22)

试试这个:

ColumnText ct = new ColumnText(cb);
Phrase myText = new Phrase("TEST paragraph\nAfter Newline");
ct.setSimpleColumn(myText, 34, 750, 580, 317, 15, Element.ALIGN_LEFT);
ct.go();

SetSimpleColumn的参数是:

  1. 短语
  2. 左下角x(左)
  3. 左下角y(底部)
  4. 右上角x(右)
  5. 右上角(顶部)
  6. 行高(领先)
  7. 对准。

答案 1 :(得分:2)

ColumnText ct = new ColumnText(content);
ct.setSimpleColumn(
    new Phrase("Very Long Text"),
    left=20, bottom=100, right=500, top=500,
    fontSize=18, Element.ALIGN_JUSTIFIED);
ct.go(); // for drawing