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();
上一篇 Java的itext常见方法总结--3(水印)
下一篇 腾讯云CVM部署OpenClaw全流程教程
目录
文章列表
1 Swift UI - 滚动视图(UIScrollView)
Swift UI - 滚动视图(UIScrollView)
2
Laravel 5 常用命令及性能优化
Laravel 5 常用命令及性能优化
3
Windows下Laravel环境搭建
Windows下Laravel环境搭建
4
RocketMQ详解——RocketMQ的重试机制
RocketMQ详解——RocketMQ的重试机制
5
Bigcommerce订单确认页接口调试
Bigcommerce订单确认页接口调试
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。