当前位置: 首页 > news >正文

【PDF】Java itextpdf 生成PDF时添加自定义页脚

        Java 使用 itextpdf 生成(导出)PDF时,添加自定义页脚,当前案例演示 页码居中,单据编号右侧显示,实现代码如下:

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;import java.io.FileOutputStream;
import java.io.IOException;public class PdfFooterExample {public static void main(String[] args) {String outputPath = "C:\\Users\\Desktop\\document_with_footer.pdf";    //生成的PDF保存路径try {// 创建文档对象Document document = new Document();// 创建PDF写入器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(outputPath));// 设置单据编号String documentNumber = "DOC-2023-001";// 添加页脚事件处理//设置字体,支持中文BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font font = new Font(bf, 10);writer.setPageEvent(new PdfPageEventHelper() {// 在每页结束时添加页脚public void onEndPage(PdfWriter writer, Document document) {try {// 获取页面内容PdfContentByte cb = writer.getDirectContent();// 创建页脚段落Phrase footer = new Phrase();// 1. 页码(中间)footer.add(new Chunk("第" + writer.getPageNumber() + "页", font));// 2. 单据编号(右边)ColumnText.showTextAligned(cb,Element.ALIGN_RIGHT,new Phrase("单据编号: " + documentNumber, font),document.right() - 36,  // 右边距document.bottom() - 10, // 下边距0);// 将页码居中显示ColumnText.showTextAligned(cb,Element.ALIGN_CENTER,footer,(document.left() + document.right()) / 2,document.bottom() - 10,0);} catch (Exception e) {e.printStackTrace();}}});// 打开文档document.open();// 添加一些内容(演示用)for (int i = 0; i < 5; i++) {document.add(new Paragraph("这是文档的第 " + (i+1) + " 段内容。"));document.add(Chunk.NEWLINE);}// 关闭文档document.close();System.out.println("PDF with footer created successfully!");} catch (DocumentException | IOException e) {e.printStackTrace();}}
}

    导出页脚示例:

http://www.lqws.cn/news/505729.html

相关文章:

  • 【android bluetooth 协议分析 05】【蓝牙连接详解2】【acl_interface_t介绍】
  • C预处理详解2
  • 桌面小屏幕实战课程:DesktopScreen 7 文件系统
  • 01-StarRocks安装部署FAQ
  • HOW - 图片的一倍图、二倍图和三倍图
  • 【Pandas】pandas DataFrame merge
  • 鸿蒙开发 一 (八)、自定义绘制
  • 3DSwiper 好看的走马灯轮播图
  • Meson介绍及编译Glib库
  • 顺序表整理和单项链表01 day20
  • 对人工智能的厌倦感是真实存在的,而且它给品牌带来的损失远不止是参与度的下降
  • 【sklearn】K-means、密度聚类、层次聚类、GMM、谱聚类
  • Flutter 学习 之 mixin
  • CFDEM 介绍和使用指南
  • CUDA12.1+高版本pytorch复现Mtrans环境
  • FastMCP+python简单测试
  • 全面掌握 Nginx的功能和使用方法
  • Ingress-Nginx简介和配置样例
  • 最方便的应用构建——利用云原生快速搭建本地deepseek知识仓库
  • 程序猿成长之路之数据挖掘篇——聚类算法介绍
  • uniapp实现远程图片下载到手机相册功能
  • redis的安装及操作
  • 支持向量机(SVM):原理、实现与应用
  • Python核心库Pandas详解:数据处理与分析利器
  • 传输层协议TCP
  • 随机森林详解:原理、优势与应用实践
  • 【apache-maven3.9安装与配置】
  • C++ string类的操作
  • Python与Web3.py库交互实践
  • ref() 与 reactive()