我正在创建两行。第一行包含0,1,...,10。第二行包含每个数字下方的单选按钮。这是我的代码:
for (int k=0; k<=10; k++) {
String text = k + "";
cell = new PdfPCell(new Phrase(text));
cell.setBorder(Rectangle.NO_BORDER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_TOP);
cell.setPaddingTop(5);
table.addCell(cell);
}
for (int k=0; k<=10; k++) {
cell = new PdfPCell();
cell.setBorder(Rectangle.NO_BORDER);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setVerticalAlignment(Element.ALIGN_BOTTOM);
cell.setPaddingTop(10);
cell.setCellEvent(new MyCellField(radiogroup, k+""));
table.addCell(cell);
}
MyCellField类似于此页面上提供的内容:
http://developers.itextpdf.com/examples/form-examples/create-fields-table
问题在于,无论我给第二行留出什么样的间距,第二行中产生的单选按钮总是与它们各自的数字重叠。
答案 0 :(得分:2)
执行此操作时,您将创建一个没有任何内容的单元格:cell = new PdfPCell();
没有内容意味着:没有高度。您可能想要添加以下行:
cell.setFixedHeight(30);
这样,您可以确定单元格的高度足以添加单选按钮。
在iText 5中,我们经常使用cell.setUseAscender(true);
和cell.setUseDescender(true);
来更好地定位文本。这个问题在iText 7中得到解决。