代码之家  ›  专栏  ›  技术社区  ›  KarolDepka

itext边界框中的多行文本

  •  10
  • KarolDepka  · 技术社区  · 15 年前

    有人知道如何在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或pdfemplate或table可能会有所帮助,但我(还)不知道如何组合起来。TIA寻求帮助。

    2 回复  |  直到 9 年前
        1
  •  22
  •   Pavel Vlasov Jaiwo99    9 年前

    试试这个:

    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. 对准。
        2
  •  2
  •   Aubin    11 年前
    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