Java的itext常见方法总结–4(页头,页尾,页码)

Document document = new Document();

PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("D:\\appblog\\PDF\\水印.pdf"));

document.open();

//获取页码
pdfWriter.getPageNumber();

pdfWriter.setPageEvent(new PdfPageEventHelper() {

    @Override
    public void onStartPage(PdfWriter writer, Document document) {
        //这个newPage之后执行的

        //水印字体,可以使用这个来制作页码
        //ColumnText.showTextAligned(writer.getDirectContent(), ALIGN_RIGHT, new Phrase("Header"), 40, 20, 0);

        //writer.getDirectContent().addImage(); 这个可以添加图片

        //这个是行分割符号
        LineSeparator lineSeparator = new LineSeparator();
        //drawLine的参数:PdfContentByte canvas, float leftX, float rightX, float y
        //leftX代表的是要画的这个线相对这个PDF页面的长度
        //rightX代表的是:这条线的X的坐标
        //y代表的是:这条线y的坐标
        lineSeparator.drawLine(writer.getDirectContent(), document.getPageSize().getWidth(), 0, 60);
    }

    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        //这个是newPage之前执行的
        ColumnText.showTextAligned(writer.getDirectContent(), ALIGN_RIGHT, new Phrase("Header"), 40, document.getPageSize().getHeight()-20, 0);

        LineSeparator lineSeparator = new LineSeparator();
        lineSeparator.drawLine(writer.getDirectContent(), document.getPageSize().getWidth(), 0, document.getPageSize().getHeight()-25);
        //页码
        ColumnText.showTextAligned(writer.getDirectContent(), ALIGN_CENTER, new Phrase("theFirst " + writer.getPageNumber() + " Page"), document.getPageSize().getWidth()/2, 40, 0);
    }

    @Override
    public void onCloseDocument(PdfWriter writer, Document document) {
        //执行documnet.close方法之前还会执行一次onCloseDocument方法,
        //但是执行onCloseDocument方法前,之前还会先执行onEndPage方法一次才轮到onCloseDocument方法
        //也就是说,documnet.close的时候:是先 onEndPage --> onCloseDocument --> documnet.close
        System.out.println("关闭文档");
    }
});

document.add(new Paragraph(" "));

document.newPage();

document.add(new Paragraph(" "));

document.close();
pdfWriter.close();

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2024/01/24/java-itext-page-header-footer-number/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Java的itext常见方法总结–4(页头,页尾,页码)
Document document = new Document(); PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("D:\\appblog\\PDF\\水印.pdf"……
<<上一篇
下一篇>>
文章目录
关闭
目 录