2013-10-31 98 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);

相关问题