首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在表头添加页码?

如何在表头添加页码?
EN

Stack Overflow用户
提问于 2013-04-23 23:03:00
回答 1查看 1K关注 0票数 0

我已经创建了一个PdfPTable (带有一个标题),它被分成几个页面。我在模拟模式下使用ColumnText添加表,并计算表显示的页数。现在,我正在寻找为每个报头添加x/n计数器的最佳方法。

例如:我的标题行是“关于材料的表格”。我计算出,这个表被分成3页。生成的标题应该类似于:第一页的“关于填充物1/3的表格”,第二页的“关于填充物2/3的表格”,第三页的“关于填充物3/3的表格”。

做这件事最好的方法是什么?这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-23 23:36:08

最好的方法是使用cell事件。

我没有现成的示例,但您可以通过组合以下示例自己编写一个示例:

MovieCountries1示例中,我解决了“第X页共Y页”的问题。您总是知道X的值,但只要您仍在创建文档,就不知道Y的值(即总页数)。在您的例子中,您也有类似的问题。您想添加"part X of Y“。

您可以通过添加一个空单元格来实现这一点,您可以为该单元格创建一个自定义PdfPCellEvent。通过在iText官方站点上搜索关键字PdfPCell > events,您可以找到几个关于单元格事件的示例。

让我们看一下RunLengthEvent示例,其中我们使用了一个名为PressPreview的自定义PdfPCellEvent

代码语言:javascript
复制
class PressPreview implements PdfPCellEvent {

    public BaseFont bf;

    public PressPreview() throws DocumentException, IOException {
        bf = BaseFont.createFont();
    }

    public void cellLayout(PdfPCell cell, Rectangle rect,
            PdfContentByte[] canvas) {
        PdfContentByte cb = canvas[PdfPTable.TEXTCANVAS];
        cb.beginText();
        cb.setFontAndSize(bf, 12);
        cb.showTextAligned(Element.ALIGN_RIGHT, "PRESS PREVIEW",
            rect.getRight() - 3, rect.getBottom() + 4.5f, 0);
        cb.endText();
    }
}

在此示例中,文本"PRESS PREVIEW“被添加到已添加此事件的所有单元格,如下所示:

代码语言:javascript
复制
PdfPCellEvent press = new PressPreview();
PdfPCell cell = new PdfPCell();
cell.setCellEvent(press);

在本例中,您需要向自定义事件添加两个成员变量。一个PdfTemplate,您将在其中写入Y的值。一个int,用于跟踪事件被触发的次数。当完整的表格添加到文档中时,Y将等于X,您可以在PdfTemplate上填写此值。

总结:你想要的并不是不可能的,但也不是微不足道的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16172776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档