2009-11-05 5 views
8

Кто-нибудь знает, как в iText добавить многострочный текст в ограничительную рамку (с указанными координатами).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 или, может быть, таблица могут помочь, но я еще не знаю, как это сделать. TIA за помощью.

ответ

19

Попробуйте это:

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. левых нижним й угла (слева)
  3. нижнего левым у угла (внизу)
  4. верхний правый угол x (справа)
  5. верхний правый угол y (верхний)
  6. линия высота (ведущий)
  7. выравнивание.
+0

Спасибо. Я на самом деле написал мини-библиотеку для макетов и автоподгонки и таблиц, в которой есть вещи, которые вы написали в своем ответе. – KarolDepka

+0

спасибо большое, работал как шарм! – talha06

+0

Что означает ширина окна, высота окна? –

1
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