4

我正在尝试添加一个表格作为包含所有版权文本、页码等的页脚。但我找不到任何可以接受的支持方法PdfPTable

对于一个短语,有如下代码:

ColumnText.showTextAligned(writer.getDirectContent(),
        Element.ALIGN_CENTER, new Phrase(
            String.format("%d", document.getPageNumber())),
            (document.getPageSize().getLeft() + document.getPageSize().getRight())/2,
            document.getPageSize().getBottom() + 18, 0);
4

3 回答 3

8

该类PdfPTable有一个方法writeSelectedRows(),可用于在绝对位置添加(选择列和)行。

例子:

于 2012-10-10T06:03:06.757 回答
8

Bruno 发布的示例是一个很好的指针,这是一个没有幻数的示例:

    private void writeFooterTable(PdfWriter writer, Document document, PdfPTable table) {
        final int FIRST_ROW = 0;
        final int LAST_ROW = -1;
        //Table must have absolute width set.
        if(table.getTotalWidth()==0)
            table.setTotalWidth((document.right()-document.left())*table.getWidthPercentage()/100f);
        table.writeSelectedRows(FIRST_ROW, LAST_ROW, document.left(), document.bottom()+table.getTotalHeight(),writer.getDirectContent());
    }

这将在底部的文档边距内写入 PdfPTable,与底部的任何文本重叠。如果您想在页边空白处写下表格,请使用:document.bottom()而不是document.bottom()+table.getTotalHeight().


页眉/页脚示例

作为相关说明,如果您按照此链接上的示例进行操作,则似乎不需要“艺术”框,并且幻数 36、54、559、788 对应于:

document.left(), document.bottom(), document.right(), document.top()
于 2015-03-09T21:11:59.543 回答
0

要实现自定义页脚,您需要实现PdfPageEventHelper

于 2012-10-09T10:07:26.810 回答