Apache POI + Office Word 生成页码

news/2024/11/8 22:38:22/

需求: 添加页码

		<properties><easypoi.version>4.0.0</easypoi.version></properties>
        <!-- easypoi --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>${easypoi.version}</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>${easypoi.version}</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>${easypoi.version}</version></dependency>
package com.platform.modules.sas.utils;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;import java.io.*;/*** ClassName   FooterTest* Description add footer to word with poi* Author  Kalinda* Date  2020/7/1 13:54* Version 1.0*/
public class FooterTest {public static void main(String[] args) {try {// file pathFile is = new File("D:/test.docx");FileInputStream fis = new FileInputStream(is);// document objectXWPFDocument doc = new XWPFDocument(fis);// calling methodcreateFooter(doc);// or this method both ok!// createFooter(doc);// outputOutputStream os = new FileOutputStream("D:\\Test1.docx");doc.write(os);} catch (Exception e) {e.printStackTrace();}}public static void createFooter(XWPFDocument doc) {// create footerXWPFHeaderFooterPolicy policy = doc.getHeaderFooterPolicy();CTP ctpFooter = CTP.Factory.newInstance();XWPFParagraph[] parsFooter;// add style (s.th.)CTPPr ctppr = ctpFooter.addNewPPr();CTString pst = ctppr.addNewPStyle();pst.setVal("style21");CTJc ctjc = ctppr.addNewJc();ctjc.setVal(STJc.CENTER);ctppr.addNewRPr();// add everything from the footerXXX.xml you needCTR ctr = ctpFooter.addNewR();ctr.addNewRPr();CTFldChar fch = ctr.addNewFldChar();fch.setFldCharType(STFldCharType.BEGIN);ctr = ctpFooter.addNewR();ctr.addNewInstrText().setStringValue(" PAGE ");ctpFooter.addNewR().addNewFldChar().setFldCharType(STFldCharType.SEPARATE);ctpFooter.addNewR().addNewT().setStringValue("1");ctpFooter.addNewR().addNewFldChar().setFldCharType(STFldCharType.END);XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, doc);parsFooter = new XWPFParagraph[1];parsFooter[0] = footerParagraph;policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);}public static void createDefaultFooter(final XWPFDocument document) {CTP pageNo = CTP.Factory.newInstance();XWPFParagraph footer = new XWPFParagraph(pageNo, document);CTPPr begin = pageNo.addNewPPr();begin.addNewPStyle().setVal("style21");begin.addNewJc().setVal(STJc.CENTER);pageNo.addNewR().addNewFldChar().setFldCharType(STFldCharType.BEGIN);pageNo.addNewR().addNewInstrText().setStringValue("PAGE   \\* MERGEFORMAT");pageNo.addNewR().addNewFldChar().setFldCharType(STFldCharType.SEPARATE);CTR end = pageNo.addNewR();CTRPr endRPr = end.addNewRPr();endRPr.addNewNoProof();endRPr.addNewLang().setVal("zh-CN");end.addNewFldChar().setFldCharType(STFldCharType.END);CTSectPr sectPr = document.getDocument().getBody().isSetSectPr() ? document.getDocument().getBody().getSectPr() : docx.getDocument().getBody().addNewSectPr();XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);policy.createFooter(STHdrFtr.DEFAULT, new XWPFParagraph[] { footer });}}

http://www.ppmy.cn/news/752889.html

相关文章

Word文档:设置从第二页开始显示页码(亲测有效)

打开需要操作的Word文档&#xff0c;双击页脚或页眉打开<页眉和页脚>&#xff1b; 点击<开始>&#xff0c;选择【清楚所有格式】&#xff0c;去掉页眉横线&#xff1b; before▼ after▼ 回到<页眉和页脚>&#xff0c;取消勾选【首页不同】选项&#xff1b;…

LaTeX 第一页不显示页码

LaTeX \LaTeX LATE​X 第一页不显示页码 有时候写 LaTeX 文档的时候&#xff0c;第一页是一些其他的东西&#xff0c;第二页或者什么的才是正文&#xff0c;如果你想取消第一页的页码&#xff0c;可以使用下面的代码&#xff1a; 代码 \documentclass{article} \usepackage[…

word2016页码都是一样的这样解决,详细全过程

第一步&#xff1a;找到重复页码的第一页 第二步&#xff0c;双击‘2’的位置&#xff0c;出现页眉页脚编辑栏 第三步&#xff1a; 再看一下其他页面位置有没有变化&#xff0c;有就点个赞呗​

Word 2007 添加页码显示灰色

Word 2007 添加页码显示灰色解决方案&#xff1a; 1、点击Microsoft Office按钮 【下图左上角图标】-->【word选项】 2、【加载项】-->管理选择【模板】-->转到 3、按图操作。 4、插入页码&#xff0c;测试结果

Mac版Word设置从第K页开始显示页码

tags: Word Tips 写在前面 最近有同学问我怎么在word文档中从第四页开始设置页码, 也就是首页以及第二页第三页的说明页都不编页码, 从第四页开始页码为1, 然后往后编号这种. 一开始我以为直接在页码设置处就有这个选项的(毕竟写东西几乎不用word, 也不熟悉), 后来发现还是t…

运输层:TCP可靠传输

1.运输层&#xff1a;TCP可靠传输 笔记来源&#xff1a; 湖科大教书匠&#xff1a;TCP可靠传输 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 TCP实现可靠传输的方式&#xff1a;以字节为单位的滑动窗口 发送方将31 ~ 41号报文段发送 假设32 ~ 3…

MQTT协议原理介绍及如何使用emqx

MQTT协议原理介绍及如何使用emqx 什么是MQTT协议 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议是一种轻量级的、基于发布/订阅模式的通信协议。它最初由IBM开发&#xff0c;用于在低带宽和不稳定的网络环境中传输小型数据包。MQTT协议被广泛应用于物…

苹果Mac系统怎么彻底关闭开机的声音?

Mac用户都了解每次开机的时候&#xff0c;都会有一个“duang~”开机启动音&#xff0c;有时候声音比较大&#xff0c;还吓一跳。如果想要临时禁止这个开机启动音&#xff0c;有一个简单的办法就是开机的时候一直按住键盘上的静音键&#xff08;F10&#xff09;&#xff0c;但这…