2009-11-05 4 views
8

Qualcuno sa, in che modo, in iText, aggiunge il testo multilinea nella casella di delimitazione (con le coordinate specificate).itext testo multilinea nella casella di delimitazione

ho cercato

cb.showTextAligned(
    PdfContentByte.ALIGN_LEFT, 
    text, 
    bounds.getLeft(), 
    TOTAL_HEIGHT-bounds.getTop(), 
    0); 

Ma non supporta a capo. Ho anche provato

PdfContentByte cb = writer.getDirectContent(); 
cb.moveText(300,400); 
document.add(new Paragraph("TEST paragraph\nNewline")); 

Questo sostiene a capo, ma non reagisce a moveText, quindi non so come mettere a determinata posizione o meglio: riquadro di delimitazione.

Sospetto che pezzi o PdfTemplate o forse una tabella possano essere d'aiuto, ma non so (ancora) come metterlo insieme. TIA per aiuto.

risposta

19

Prova questo:

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(); 

parametri di SetSimpleColumn sono:

  1. la frase
  2. fianco x angolo inferiore (sinistra)
  3. basso a sinistra y angolo (in basso)
  4. l'angolo in alto a destra x (a destra)
  5. l'angolo in alto a destra (in alto)
  6. altezza linea (leader)
  7. allineamento.
+0

Grazie. In realtà ho scritto una mini-libreria per layout e auto-fitting e tabelle, che incorpora le cose che hai scritto nella tua risposta. – KarolDepka

+0

grazie mille, ha funzionato come un fascino! – talha06

+0

Che cosa significa la larghezza della scatola, altezza della scatola? –

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