gpt4 book ai didi

apache-poi - Apache POI 如何添加页码

转载 作者:行者123 更新时间:2023-12-04 23:20:49 24 4
gpt4 key购买 nike

刚开始使用 POI 3.10 创建 Word 文档(XWPF)。
大多数事情都是直截了当的,但我不明白如何添加页码。
我添加了页脚,但页脚中的文字在每一页上都相同

最佳答案

我在 LibreOffice 右侧的页脚中创建了一个页码并调查了 XML 文件(POI 中不支持 MS Word-Std-Objects,它用于页码)。

这将能够创建更复杂的页脚...

要将数字设置为其他位置,请为 ctjc 而不是 STJc.RIGHT 设置另一个值...

结果如下:

// create footer
XWPFHeaderFooterPolicy 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.RIGHT);
ctppr.addNewRPr();

// Add in word "Page "
CTR ctr = ctpFooter.addNewR();
CTText t = ctr.addNewT();
t.setStringValue("Page ");
t.setSpace(Space.PRESERVE);

// add everything from the footerXXX.xml you need
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);

关于apache-poi - Apache POI 如何添加页码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27410967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com