iText:在边界框中多行文本

13

有没有人知道如何在 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,所以我不知道如何将其放置在给定位置或更好的边界框中。

我怀疑使用块、PdfTemplate或表格可能会有所帮助,但我还不知道如何将它们组合起来。感谢您提供的帮助。

2个回答

25

试试这个:

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坐标 (left)
  3. 左下角y坐标 (bottom)
  4. 右上角x坐标 (right)
  5. 右上角y坐标 (top)
  6. 行高 (leading)
  7. 对齐方式。

谢谢。我实际上为布局、自适应和表格编写了一个迷你库,其中包括您在回复中所写的内容。 - KarolDepka
盒子宽度和盒子高度是什么意思? - Cocoa Dev
3
  1. 是右上角的X坐标。
  2. 是右上角的Y坐标。
- Tillito
你怎么让这段文本显示在其他元素的上面?它现在被一个表格遮挡住了。 - TWilly

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接