2013-10-31 131 views
1

我需要將文本居中在PDF表格單元格中。不幸的是,所有的文本都出現在單元格的底部。這裏是我的示例代碼:itext中居中的文本Pdf表格單元格

String line = br.readLine(); 
Font f2 = new Font(Font.NORMAL, 12, Font.BOLD); 
f2.setColor(Color.BLACK); 
Paragraph p1 = new Paragraph(line, f2); 
p1.setAlignment(Element.TABLE); 
PdfPTable table = new PdfPTable(1); 
table.setWidthPercentage(100); 
PdfPCell cell = new PdfPCell(); 
cell.setBorder(Rectangle.NO_BORDER); 
cell.setBorderWidthBottom(1f); 
cell.setUseBorderPadding(true); 
cell.setPadding(0); 
cell.setBorderColor(new java.awt.Color(255, 255, 255)); 
cell.addElement(p1); 
table.addCell(cell); 
output.add(table); 

我需要單元格內的單元格內垂直居中的文本。請幫忙。

回答

4

有你共享的片斷幾個錯誤。我已經適應了代碼,並張貼在這裏的例子:http://itextpdf.com/sandbox/tables/CenteredTextInCell

減少變化的概述:

您定義的字體是錯的,或者你正在使用一個版本的iText的是真的的方式,真的很老。

以下行並沒有真正意義:

p1.setAlignment(Element.TABLE); 

有一個在iText的沒有這樣的值(曾經有一個,但它已經很長一段時間以前刪除),evenso沒有關係使用保留的值來定義對象類型以定義對齊是沒有意義的。

如果你不想要一個邊界:

cell.setBorder(Rectangle.NO_BORDER); 

它沒有意義的定義邊界寬度,填充或顏色:

cell.setBorderWidthBottom(1f); 
cell.setUseBorderPadding(true); 
cell.setBorderColor(new java.awt.Color(255, 255, 255)); 

您需要定義垂直對齊線是:

cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 
2

cell.setVerticalAlignment(Element.ALIGN_MIDDLE);

相關問題