2012-10-29 16 views
7

Qual è il modo migliore per creare una riga di testo che avrà due elementi allineati a una linea immaginaria? Ti piace questa (quattro righe dato per illustrare il punto migliore):Allineamento del testo in iText in una riga singola

1. some random text 
    34. some more random text 
    764. here's even more random text 
4594. it just never ends 

linea immaginaria sarebbe andare attraverso i punti, o lo spazio dopo di loro. I numeri hanno il giusto allineamento e il testo ha lasciato l'allineamento.

Non voglio utilizzare un elenco perché gli elementi potrebbero non essere in ordine e presenta alcune limitazioni con l'impostazione dell'interlinea.

+0

Hai considerato di utilizzare una tabella a due colonne? – mkl

risposta

17

È possibile utilizzare un PdfPTable con 2 colonne, la prima allineata a destra e l'ultima a sinistra allineata. Quindi imposta il riempimento del profilo sul contenuto delle celle. Per esempio:

PdfPTable tbl = new PdfPTable(2); 
    PdfPCell cell = new PdfPCell(new Phrase("1.")); 
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT); 
    cell.disableBorderSide(Rectangle.BOX); 
    tbl.addCell(cell); 
    cell = new PdfPCell(new Phrase("some random text")); 
    cell.disableBorderSide(Rectangle.BOX); 
    tbl.addCell(cell); 
    cell = new PdfPCell(new Phrase("34.")); 
    cell.disableBorderSide(Rectangle.BOX); 
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT); 
    tbl.addCell(cell); 
    cell = new PdfPCell(new Phrase("some more random text")); 
    cell.disableBorderSide(Rectangle.BOX); 
    tbl.addCell(cell); 

si può vedere che bordo della cella sono disabilitati (disableBorderSide metodo). È inoltre possibile regolare l'altezza minima delle celle utilizzando il metodo setMinimumHeight.

+0

La tabella influirebbe sul posizionamento verticale e orizzontale del testo? O, in altre parole, posso fare bordi di spessore 0 punti? – Karlovsky120

+0

Ho aggiornato la risposta ... –

Problemi correlati