如何在新的docx文档中创建页眉/页脚?
问题描述:
我想用XWPF jar(apache poi)在docx文档(一个新的,不存在的)上创建一个页眉和页脚。如何在新的docx文档中创建页眉/页脚?
当我使用XWPFHeaderFooterPolicy policy = document.getHeaderFooterPolicy();
政策是空的,所以我会知道如何在一个新的文档中创建它。
CustomXWPFDocument document = new CustomXWPFDocument();
XWPFHeaderFooterPolicy policy = document.getHeaderFooterPolicy();
XWPFHeader head = policy.createHeader(policy.DEFAULT);
head.getListParagraph().get(0).createRun().setText("Hello Header World!");
CTP ctP1 = CTP.Factory.newInstance();
CTR ctR1 = ctP1.addNewR();
CTText t = ctR1.addNewT();
t.setStringValue("Paragraph in header");
XWPFParagraph p1 = new XWPFParagraph(ctP1, document);
XWPFParagraph[] pars = new XWPFParagraph[1];
pars[0] = p1;
policy.createHeader(policy.FIRST, pars);
答
必须使用下面的代码
CTBody body = doc.getDocument().getBody();
CTSectPr sectPr = body.isSetSectPr()? body.getSectPr() : body.addNewSectPr();
答
public static void setFooter(XWPFDocument document, String footerText) {
CTP ctpFooter = CTP.Factory.newInstance();
ctpFooter.addNewR().addNewT();
XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
XWPFRun footerRun = createFormattedRun(footerParagraph);
footerRun.setFontSize(6);
footerRun.setText(footerText);
XWPFParagraph[] parsFooter = new XWPFParagraph[1];
parsFooter[0] = footerParagraph;
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
}
谢谢段属性添加到
XWPFDocument doc
如果不存在,我看到它befor,但不帮助我的应用程序。我的文档是生成的,没有模板,但我只能使用一个模板来恢复页眉和页脚,并将它嵌入到生成的文档中......并且不知道该怎么做 – 2014-11-26 09:27:58