【问题标题】:Continue table to the next PDF page, and print text in between继续表格到下一个 PDF 页面,并在其间打印文本
【发布时间】:2012-01-27 23:19:50
【问题描述】:

我不知道我正在尝试做的事情是否可能,对于一些非常微不足道的事情来说可能工作量太大。我有一个创建 PDF 的 servlet。我正在使用 iText 写入创建的 pdf,在我的 pdf 中我有一个可以更改文档大小的动态表。当需要转到下一页时,我想在文档底部打印“继续下一页”。问题是我永远不会知道分页符在我的文档中出现的位置。

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

编辑:可能是在自言自语,但我认为这是可能的唯一方法是,如果有一种方法可以意识到刚刚创建了一个新页面。

【问题讨论】:

    标签: java pdf itext


    【解决方案1】:

    您可以尝试在您的 pdf 生成器类中应用这个 sn-p

    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,在你的情况下搜索 footer。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可能可以使用 setSkipLastFooter(boolean)。这样,它将打印表格的页脚行,该行在除最后一页之外的每一页上都有连续的文本。您需要确保在桌子上设置了FooterRows。

      您也可以使用PdfPageEventHelper,它允许您拦截各种页面事件,包括结束页面事件。在 onEndPage 方法中,您可以将“Continued On Next Page”文本添加到文档中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-31
        • 2020-09-19
        • 1970-01-01
        • 2011-06-22
        • 1970-01-01
        • 2017-10-23
        相关资源
        最近更新 更多