0

我有一个 PDF 文档,其中通常每个页面都标有页脚,页码前面是页面应该所在的章节或章节的名称。但是,偶尔,我会得到一些跨越页数。

我需要维护它们所在的当前部分的页脚印记,但由于大表运行在多个页面上,这些页面被前面部分的页脚印记加盖,而显示表格的最后一页得到当前部分页脚印章。

如果有人能想出一个解决方案来为当前部分设置和维护章节/部分页脚印章,那就太好了。

* 附加 * 这是 onEndPage 覆盖的代码。

public override void OnEndPage(PdfWriter writer, Document document)
{
    base.OnEndPage(writer, document);

    if ((pagenumber - 1) >= 1)
    {
        String text = footer + pagenumber.ToString();
        float len = bf.GetWidthPoint(text, 8);

        Rectangle pageSize = document.PageSize;

        cb.SetRGBColorFill(100, 100, 100);

        cb.BeginText();
        cb.SetFontAndSize(bf, 8);
        cb.SetTextMatrix(pageSize.GetRight(100), pageSize.GetBottom(20));
        cb.ShowText(text);
        cb.EndText();
        if (this.currentChapter > this.totalChapters)
        {
            pagenumber = 0;
        }
        else
        {
            pagenumber++;
        }
    }
    else
    {
        pagenumber++;
    }
}

我跳过为文档添加页眉和页脚信息,因为我有一个封面。由于各个部分是不同的信息,因此我根据各个领域将它们分解为章节和小节。此外,用户可以选择一次打印从数据库信息生成的多个 PDF。在每一章的开头,我使用以下命令设置页脚文本:

this.PageEventHandler.footer = "(Part 1) - Page: ";

或者至少我正在努力。在做第二部分(就业历史)时,如果一个人在他们的就业历史中经常在各个部门之间交换,他们可以建立一个相当多的记录,并且它会溢出到好几页上。

4

1 回答 1

1

一种方法是在PdfPageEvents处理每个页面时使用添加页脚。该文档适用于 Java 版本,但您需要覆盖该onEndPage方法。

iTextPDF - PdfPageEvent

于 2012-11-22T13:51:53.367 回答