代碼如下
/**
* 設置頁腳的字體樣式
*
* @param r1 段落元素
*/
private void setXWPFRunStyle(XWPFRun r1,String font,int fontSize) {
r1.setFontSize(fontSize);
CTRPr rpr = r1.getCTR().isSetRPr() ? r1.getCTR().getRPr() : r1.getCTR().addNewRPr();
CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts();
fonts.setAscii(font);
fonts.setEastAsia(font);
fonts.setHAnsi(font);
}
注意 doc 爲 XWPFDocument doc = null
完整代碼在
https://blog.csdn.net/z446981439/article/details/103994151
//生成頁腳
public void createFooter(){
/*
* 生成頁腳段落
* 給段落設置寬度爲佔滿一行
* */
CTSectPr sectPr=doc.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy headerFooterPolicy=new XWPFHeaderFooterPolicy(doc,sectPr);
try {
XWPFFooter footer=headerFooterPolicy.createFooter(STHdrFtr.DEFAULT);
XWPFParagraph paragraph = footer.getParagraphArray(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setVerticalAlignment(TextAlignment.CENTER);
paragraph.setBorderTop(Borders.THICK);
CTTabStop tabStop = paragraph.getCTP().getPPr().addNewTabs().addNewTab();
tabStop.setVal(STTabJc.RIGHT);
int twipsPerInch = 1440;
tabStop.setPos(BigInteger.valueOf(6 * twipsPerInch));
/*
* 給段落創建元素
* 設置元素字面爲公司地址+公司電話
* */
XWPFRun run = paragraph.createRun();
setXWPFRunStyle(run,"宋體",8);
run.addTab();
String s=run.getFontFamily();
/*
* 生成頁碼
* 頁碼右對齊
* */
run = paragraph.createRun();
run.setText("第");
setXWPFRunStyle(run,"宋體",8);
run = paragraph.createRun();
CTFldChar fldChar = run.getCTR().addNewFldChar();
fldChar.setFldCharType(STFldCharType.Enum.forString("begin"));
setXWPFRunStyle(run,"宋體",8);
run = paragraph.createRun();
CTText ctText = run.getCTR().addNewInstrText();
ctText.setStringValue("PAGE \\* MERGEFORMAT");
ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
setXWPFRunStyle(run,"宋體",8);
fldChar = run.getCTR().addNewFldChar();
fldChar.setFldCharType(STFldCharType.Enum.forString("end"));
run = paragraph.createRun();
run.setText("頁/共");
setXWPFRunStyle(run,"宋體",8);
run = paragraph.createRun();
fldChar = run.getCTR().addNewFldChar();
fldChar.setFldCharType(STFldCharType.Enum.forString("begin"));
run = paragraph.createRun();
ctText = run.getCTR().addNewInstrText();
ctText.setStringValue("NUMPAGES \\* MERGEFORMAT ");
ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
setXWPFRunStyle(run,"宋體",8);
fldChar = run.getCTR().addNewFldChar();
fldChar.setFldCharType(STFldCharType.Enum.forString("end"));
run = paragraph.createRun();
run.setText("頁");
setXWPFRunStyle(run,"宋體",8);
} catch (IOException e) {
throw CommonException.exception("頁腳設置失敗!",e);
}
}