为什么 table 两行靠得这么近?

Why do the two table rows get so close to each other?

我正在创建两行。第一行包含 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

问题是,无论我给第二行设置什么间距,第二行中生成的单选按钮总是与它们各自的编号重叠。

您在执行此操作时创建了一个没有任何内容的单元格:cell = new PdfPCell();

无内容表示:无高度。您可能想添加这一行:

cell.setFixedHeight(30);

这样,您就可以确定单元格的高度足以添加单选按钮。

在 iText 5 中,我们经常使用 cell.setUseAscender(true);cell.setUseDescender(true); 来更好地定位文本。此问题在 iText 7 中得到解决。