在iText的页面末尾绘制一条水平线?

时间:2010-07-15 09:39:37

标签: java itext

我正在使用iText创建一个表。每个表有2列,除了表的最左侧,最右侧,最顶部和最下侧之外没有边框。我能够实现这一点,但新页面开始时会出现问题。我希望在页面末尾绘制一条水平线到另一条水平线。我尝试过使用

@Override
public void onEndPage(PdfWriter arg0, Document arg1) {
    PdfPCell pdfpcells[] = pdfptable.getRow(pdfptable.getRows().size()-1).getCells();
    pdfpcells[0].setBorderWidthBottom(0.5f);
    if(pdfpcells[1] != null){ //There is a possibility that there are odd number of elements
       pdfpcells[1].setBorderWidthBottom(0.5f);
    }
}

用于在页面末尾绘制水平线,假设每次页面结束时调用此函数,因此使用当前行数。 pdfptable被声明为类变量。这似乎不起作用。我正在使用最新版的iText。 感谢。

1 个答案:

答案 0 :(得分:0)

你可以发布构建表的代码吗?你是每页制作一个还是依赖于PdfPTable的自动分割?

下面的代码可以解决问题:

 PdfPCell pdfPCells[] = table.getRow(table.getRows().size() - 1).getCells();
 for (PdfPCell pdfPCell : pdfPCells) {
     pdfPCell.setBorder(PdfPCell.BOTTOM);
 }

正如您所看到的,如果您只使用for-each循环,则无需担心数组中的元素数量。