2012-10-29 15 views
7

Jaki jest najlepszy sposób utworzenia wiersza tekstu, który będzie miał dwa elementy wyrównane do linii wyimaginowanej? Tak (cztery rzędy podanych do zilustrowania punkt lepiej):Wyrównanie tekstu w tekście w jednym wierszu

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

Imaginary linia pójdzie koryta kropki lub miejsca po nich. Liczby mają odpowiednie wyrównanie, a tekst pozostawia wyrównanie.

Nie chcę używać listy, ponieważ elementy mogą nie być w porządku i ma pewne ograniczenia z ustawianiem odstępów między wierszami.

+0

Czy rozważałeś użycie tabeli z dwiema kolumnami? – mkl

Odpowiedz

17

Możesz użyć PdfPTable z 2 kolumnami, pierwszy wyrównany do prawej i ostatni wyrównany do lewej. Następnie ustaw dopełnienie kolorów dla zawartości komórek. Na przykład:

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

Widać, że granica komórek są wyłączone (disableBorderSide metoda). Można także wyregulować minimalną wysokość komórek przy użyciu metody setMinimumHeight.

+0

Czy ta tabela wpłynie na pionowe i poziome pozycjonowanie tekstu? Lub, innymi słowy, czy mogę sprawić, by granice miały grubość 0 pts? – Karlovsky120

+0

Zaktualizowałem odpowiedź ... –