为什么两个表行彼此如此接近?

时间:2016-09-25 18:03:09

标签: itext

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

问题在于,无论我给第二行留出什么样的间距,第二行中产生的单选按钮总是与它们各自的数字重叠。

1 个答案:

答案 0 :(得分:2)

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

没有内容意味着:没有高度。您可能想要添加以下行:

cell.setFixedHeight(30);

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

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