2014-10-07 12 views
9

Używam com.lowagie.text do tworzenia plików PDF w moim kodzie. Wszystko działa dobrze, ale próbuję wyrównywać zawartość komórki w pionie. Chcę, aby tekst komórki znajdował się pośrodku wysokości komórki.Kierunek pionowej komórki PDF z com.lowagie.text

To jest mój kod

PdfPCell cell = new PdfPCell(new Phrase(value, fontValueNew)); 
cell.setBorder(o); 
cell.setBackgroundColor(new Color(233,232,232)); 
cell.setHorizontalAlignment(Element.ALIGN_LEFT); 
cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 

Tutaj poziome wyrównanie pracuje bez zarzutu, ale pionowe wyrównanie nie jest skuteczne.

+0

Gdzie jest wyświetlane w komórce? Czy możesz nam pokazać? – generalcrispy

+2

Zobacz: http://stackoverflow.com/q/5554553/3324704 – fonkap

+0

Możliwy duplikat [iText: wyrównanie pionowe komórki Pdf] (https://stackoverflow.com/questions/5554553/itext-pdftable-cell-vertical- wyrównanie) –

Odpowiedz

0

nie jestem zbyt pewny dlaczego, ale to działa na mnie (Vertical Alignment Center):

String headingLabel = "Test"; 

Paragraph heading = new Paragraph(headingLabel, 
     new Font(helvetica, 28, Font.NORMAL, new BaseColor(0, 0, 0))); 

Float textWidth = ColumnText.getWidth(heading); 
Float maxAllowed = 630f; 

while (maxAllowed < textWidth) { 
    fontSize -= 2; 
    heading = new Paragraph(headingLabel, 
     new Font(helvetica, fontSize, Font.NORMAL, new BaseColor(0, 0, 0))); 
    textWidth = ColumnText.getWidth(heading); 
} 

heading.setAlignment(Element.ALIGN_CENTER); 

PdfPCell titleCell = new PdfPCell(); 
titleCell.setHorizontalAlignment(Element.ALIGN_CENTER); 
titleCell.setVerticalAlignment(Element.ALIGN_TOP); 
titleCell.addElement(heading); 
titleCell.setFixedHeight(65f); 
headerTable.addCell(titleCell); 
0

ALIGN_MIDDLE ma wartość całkowitą 5 zdefiniowane w kodzie iText. Proszę zwrócić uwagę podczas pisania ALIGN_MIDDLE pojawia się wskazówka "Możliwe wartości dla elementu pionowego". Oznacza to, że jeśli twój element znajduje się w orientacji pionowej, zadziała, ponieważ oblicza środek elementu. Moja sugestia jest zastąpienie ALIGN_MIDDLE z ALIGN_CENTER tak Twój kod będzie wyglądać następująco:

cell.setVerticalAlignment(Element.ALIGN_CENTER); 
0

Spróbuj tego:

PdfPCell cell = new PdfPCell(new Phrase(value, fontValueNew)); 
cell.setBorder(o); 
cell.setBackgroundColor(new Color(233,232,232)); 
cell.setHorizontalAlignment(Element.ALIGN_LEFT); 
cell.setVerticalAlignment(Element.ALIGN_CENTER);