我需要将文本放在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);
我需要单元格内部垂直居中的文本。请帮忙。
您共享的代码段中存在几个错误。我修改了代码,并在此处发布了一个示例http://itextpdf.com/sandbox/tables/CenteredTextInCell(无效链接,现在为https://github.com/itext/i5js-sandbox/blob/master/src/main /java/sandbox/tables/CenteredTextInCell.java)
减少变更概述:
您定义字体的方式是错误的,或者您使用的iText版本确实非常老。
以下行实际上没有意义:
p1.setAlignment(Element.TABLE);
iText中没有这样的值(以前是一个,但是很久以前就已删除),即使这样,使用保留的值来定义对象类型和对齐方式也没有意义。
如果您不想要边框:
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句