我不知道我想做的事情是否可能,而且对于一些非常微不足道的事情来说,这可能是太多的工作。我有一个创建 PDF 的 servlet。我正在使用 iText 写入创建的 pdf,在我的 pdf 中我有一个可以更改文档大小的动态表。每当需要转到下一页时,我想在文档底部打印“下一页继续”。问题是我永远不会知道文档中分页符发生在哪里。
如果可能的话,我非常乐意为此添加代码。另外,如果不清楚,请随时提问,谢谢。
编辑:可能是在自言自语,但我认为这是可能的唯一方法是是否有一种方法可以意识到刚刚创建了一个新页面。
最佳答案
您可以尝试在 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);
}
}
仅供引用,有一堆iText examples ,在您的情况下搜索页脚。希望这会有所帮助。
关于java - 继续表格到下一个 PDF 页,并打印中间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854849/