【问题标题】:itext multiline text in bounding box边界框中的 itext 多行文本
【发布时间】:2010-12-13 07:02:08
【问题描述】:

有谁知道,如何在 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 寻求帮助。

【问题讨论】:

    标签: java text position itext multiline


    【解决方案1】:

    试试这个:

    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. 对齐。

    【讨论】:

    • 谢谢。实际上,我为布局、自动装配和表格编写了一个小型库,其中包含您在回复中编写的内容。
    • 框宽、框高是什么意思?
    • 4.是右上角的 x 角,5. 是右上角的 y 角:openlogic.com/wazi/bid/188064/iText-Generate-PDFs-in-Java
    • 如何让这个文本出现在其他元素之上?它现在被藏在桌子后面。
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 2010-11-02
      • 1970-01-01
      • 2014-08-26
      相关资源
      最近更新 更多