Java 继续表格到下一个PDF页面,并在其间打印文本

Java 继续表格到下一个PDF页面,并在其间打印文本,java,pdf,itext,Java,Pdf,Itext,我不知道我想做的事情是否可能,而且可能是为了一些无关紧要的事情做了太多的工作。我有一个创建PDF的servlet。我使用iText写入创建的pdf,在我的pdf中有一个动态表,可以更改文档的大小。每当需要转到下一页时,我想在文档底部打印“继续下一页”。问题是我永远不知道文档中的分页符发生在哪里 如果可能的话,我非常乐意为其添加代码。另外,如果不清楚,请随时提问,谢谢 编辑:可能是跟我自己说的,但我认为唯一可行的方法是,如果有一种方法能够意识到刚刚创建了一个新页面。您可能可以使用setSkipLa

我不知道我想做的事情是否可能,而且可能是为了一些无关紧要的事情做了太多的工作。我有一个创建PDF的servlet。我使用iText写入创建的pdf,在我的pdf中有一个动态表,可以更改文档的大小。每当需要转到下一页时,我想在文档底部打印“继续下一页”。问题是我永远不知道文档中的分页符发生在哪里

如果可能的话,我非常乐意为其添加代码。另外,如果不清楚,请随时提问,谢谢


编辑:可能是跟我自己说的,但我认为唯一可行的方法是,如果有一种方法能够意识到刚刚创建了一个新页面。

您可能可以使用setSkipLastFooter(布尔值)。这样,它将打印表的页脚行,除最后一页外,每页都有连续文本。您需要确保设置表上的行


您还可以使用,它允许您截获各种页面事件,包括结束页面事件。在onEndPage方法中,您可以将“下一页继续”文本添加到文档中。

您可以尝试在pdf生成器类中应用此片段:

private static final float FOOTER_MARGIN = 15;
private static final float PAGE_MARGIN_LEFT = 36;
private static final float PAGE_MARGIN_RIGHT = 36;
private static final float PAGE_MARGIN_BOTTOM = 36 + FOOTER_MARGIN;
private static final float PAGE_MARGIN_TOP = 36;
private static final Rectangle PAGE_SIZE = PageSize.A4;

//Put this in your generator method
//..
Document document = new Document(PAGE_SIZE, 
         PAGE_MARGIN_LEFT, PAGE_MARGIN_RIGHT, PAGE_MARGIN_BOTTOM, MARGIN_TOP); 
PdfWriter writer = PdfWriter.getInstance(document, OUTPUT_STREAM); 
writer.setPageEvent(new HeaderFooter()); 
//..

private class HeaderFooter extends PdfPageEventHelper {

    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        Phrase footerText = new Phrase("Continued On Next Page");
        ColumnText.showTextAligned(
                writer.getDirectContent(),
                Element.ALIGN_LEFT, footerText,
                PAGE_MARGIN_LEFT, PAGE_MARGIN_BOTTOM - FOOTER_MARGIN, 0);
    }
}
仅供参考,在您的案例中,有大量的页脚搜索。希望这有帮助