java - 如何仅在java中的第一页之后使用itextpdf添加页眉或页脚?

标签 java itext

我编写了一个java程序来下载pdf,但我想仅在第一页之后向该pdf文档添加标题,我尝试了一些代码。

class MyFooter extends PdfPageEventHelper {

    Font ffont = new Font(Font.FontFamily.UNDEFINED, 10, Font.BOLD);

    private void addHeader(PdfWriter writer,Document document){
        PdfContentByte cb = writer.getDirectContent();
        Phrase header = new Phrase("Customer Id : ", ffont);
        ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
                header,
                (document.right() - document.left()) / 2 + 
                document.leftMargin(),
                document.top() - 10, 0);

    }

     private void addFooter(PdfWriter writer,Document document){
         PdfContentByte cb = writer.getDirectContent();
            Phrase footer = new Phrase("Page "+writer.getPageNumber(), 
            ffont);
            ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
                    footer,
                    (document.right() - document.left()) / 2 + 
                    document.leftMargin(),
                    document.bottom() - 10, 0);
        }


    public void onEndPage(PdfWriter writer, Document document) {
        try{
            addHeader(writer,document);
            addFooter(writer,document);
        }catch(Exception e){
            e.printStackTrace();
        }

    }
}

页脚功能工作正常,但我希望页眉功能仅在第一页之后打印,所以我尝试使用

if(writer.getPageNumber() > 1) 

但是这个条件不起作用

最佳答案

尝试

if (document.getPageNumber() > 1)

Writer中的页码是PDF的页码,写入PDF后就会出现。

关于java - 如何仅在java中的第一页之后使用itextpdf添加页眉或页脚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771692/

相关文章:

jasper-reports - JasperReports 与 iText/iTextpdf 的比较

java - JBoss 5 调度后台任务。一个接一个地执行,打破了计划

java - ProcessBuilder 在 do while 循环后打印空输出

java - Servlet(Java EE)中过滤器和监听器的区别

java - 设置 View 颜色时出现空指针异常

itext - 使用 iTextSharp 将项目添加到现有 PDF

java - 使用 IText 解析 PDF 文件以在现有文本中添加超链接

java - 使用 itext 将 html 转换为 pdf 期间出现异常

iTextSharp PdfStamper.PartialFormFlattening 仅展平部分而非全部字段

java - 如何更改 ActionBar 的高度?