11

有谁知道,如何在 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 或 table 可能会有所帮助,但我(尚)不知道如何将它们组合在一起。TIA 寻求帮助。

4

2 回答 2

24

试试这个:

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. 右上角 y 角(顶部)
  6. 行高(前导)
  7. 结盟。
于 2009-12-30T13:46:34.643 回答
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
于 2012-04-16T16:53:16.573 回答