/** * 创建默认页眉 * * @param docx XWPFDocument文档对象 * @param text 页眉文本 * @return 返回文档帮助类对象,可用于方法链调用 * @throws IOException IO异常 * @throws FileNotFoundException 找不到文件异常 */ public static void createDefaultHeader(final XWPFDocument docx, final String text){ CTP ctp = CTP.Factory.newInstance(); XWPFParagraph paragraph = new XWPFParagraph(ctp, docx); ctp.addNewR().addNewT().setStringValue(text); ctp.addNewR().addNewT().setSpace(SpaceAttribute.Space.PRESERVE); // 分割线 CTP splitLine = CTP.Factory.newInstance(); XWPFParagraph paragraph2 = new XWPFParagraph(splitLine, docx); CTBorder bottom = splitLine.addNewPPr().addNewPBdr().addNewTop(); bottom.setVal(STBorder.Enum.forInt(3)); CTSectPr sectPr = docx.getDocument().getBody().isSetSectPr() ? docx.getDocument().getBody().getSectPr() : docx.getDocument().getBody().addNewSectPr(); XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(docx, sectPr); XWPFHeader header = policy.createHeader(STHdrFtr.DEFAULT, new XWPFParagraph[] { paragraph,paragraph2 }); header.setXWPFDocument(docx); }
public static void createDefaultFooter(final XWPFDocument docx) { CTP pageNo = CTP.Factory.newInstance(); XWPFParagraph footer = new XWPFParagraph(pageNo, docx); CTPPr begin = pageNo.addNewPPr(); begin.addNewPStyle().setVal(STYLE_FOOTER); begin.addNewJc().setVal(STJc.CENTER); pageNo.addNewR().addNewFldChar().setFldCharType(STFldCharType.BEGIN); pageNo.addNewR().addNewInstrText().setStringValue("PAGE \\* MERGEFORMAT"); pageNo.addNewR().addNewFldChar().setFldCharType(STFldCharType.SEPARATE); org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR end = pageNo.addNewR(); CTRPr endRPr = end.addNewRPr(); endRPr.addNewNoProof(); endRPr.addNewLang().setVal(LANG_ZH_CN); end.addNewFldChar().setFldCharType(STFldCharType.END); CTSectPr sectPr = docx.getDocument().getBody().isSetSectPr() ? docx.getDocument().getBody().getSectPr() : docx.getDocument().getBody().addNewSectPr(); XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(docx, sectPr); policy.createFooter(STHdrFtr.DEFAULT, new XWPFParagraph[] { footer }); }
/** * 设置页边距 (word中1厘米约等于567) * * @param document * @param left * @param top * @param right * @param bottom */ public static void setDocumentMargin(XWPFDocument document, String left, String top, String right, String bottom) { CTSectPr sectPr = document.getDocument().getBody().addNewSectPr(); CTPageMar ctpagemar = sectPr.addNewPgMar(); if (StringUtils.isNotBlank(left)) { ctpagemar.setLeft(new BigInteger(left)); } if (StringUtils.isNotBlank(top)) { ctpagemar.setTop(new BigInteger(top)); } if (StringUtils.isNotBlank(right)) { ctpagemar.setRight(new BigInteger(right)); } if (StringUtils.isNotBlank(bottom)) { ctpagemar.setBottom(new BigInteger(bottom)); } ctpagemar.setHeader(new BigInteger("283")); ctpagemar.setFooter(new BigInteger("283")); }
public static void main(String[] args) throws Exception { XWPFDocument document = new XWPFDocument();// setDocumentMargin(document, "567", "567", "567", "567");// XWPFHeader header = document.createHeader(HeaderFooterType.DEFAULT);// createDefaultHeader(document,"页眉");// addPictureForParagraph(document,new FileInputStream("D:\\workspace\\demo\\src\\test\\resources\\7.jpg"), Document.PICTURE_TYPE_JPEG, "", Units.pixelToEMU(117), Units.pixelToEMU(36)); splitColumn(document);// outputMathMl(document);// addTableDemo(document);// createDefaultFooter(document); document.write(new FileOutputStream("D:\\workspace\\demo\\src\\test\\resources\\CreateWordFormulaFromLaTeX.docx")); }
private static void splitColumn(XWPFDocument document) { document.createParagraph().createRun().setText("111111111111111111111111111111111111111111111111111"); document.createParagraph().setPageBreak(true); XWPFParagraph paragraph = document.createParagraph(); paragraph.createRun().setText("22222222222222222222222222222222222222222222222222"); XWPFRun run1 = paragraph.createRun(); run1.addCarriageReturn(); paragraph.createRun().setText("4444444444444444444444444444444444444444444"); document.createParagraph().createRun().setText("33333333333333333333333333333333333333333333333333"); CTP ctp1 = document.createParagraph().getCTP(); CTBorder bottom = ctp1.addNewPPr().addNewPBdr().addNewTop(); bottom.setVal(STBorder.Enum.forInt(3)); // 分栏 CTBody body = document.getDocument().getBody(); CTSectPr ctSectPr1 = body.addNewP().addNewPPr().addNewSectPr(); ctSectPr1.addNewCols().setNum(BigInteger.valueOf(1)); XWPFRun run = document.createParagraph().createRun(); run.setText("sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"); run.setTextHighlightColor("lightGray");// body.addNewP().addNewR().addNewT().setStringValue("居中sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"); CTSectPr ctSectPr = body.addNewSectPr(); ctSectPr.addNewType().setVal(STSectionMark.Enum.forString("continuous")); CTColumns ctColumns = ctSectPr.addNewCols(); ctColumns.setNum(BigInteger.valueOf(2)); ctColumns.setSep(STOnOff.Enum.forInt(1)); }
/** * 分栏 * @param document */ private static void splitColumn(XWPFDocument document) { document.createParagraph().createRun().setText("111111111111111111111111111111111111111111111111111"); document.createParagraph().setPageBreak(true); XWPFParagraph paragraph = document.createParagraph(); paragraph.createRun().setText("22222222222222222222222222222222222222222222222222"); XWPFRun run1 = paragraph.createRun(); run1.addCarriageReturn(); paragraph.createRun().setText("4444444444444444444444444444444444444444444"); document.createParagraph().createRun().setText("33333333333333333333333333333333333333333333333333"); CTP ctp1 = document.createParagraph().getCTP(); CTBorder bottom = ctp1.addNewPPr().addNewPBdr().addNewTop(); bottom.setVal(STBorder.Enum.forInt(3)); // 分栏 CTBody body = document.getDocument().getBody(); CTSectPr ctSectPr1 = body.addNewP().addNewPPr().addNewSectPr(); // 设置页边距 setDocumentMarginForSec(ctSectPr1,"567","567","567","567"); // 创建页眉 createHeaderForSec(document,ctSectPr1,"页眉",true); // 创建页码 createFooterForSec(document,ctSectPr1); ctSectPr1.addNewCols().setNum(BigInteger.valueOf(1)); XWPFRun run = document.createParagraph().createRun(); run.setText("sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"); run.setTextHighlightColor("lightGray");// body.addNewP().addNewR().addNewT().setStringValue("居中sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"); CTSectPr ctSectPr = body.addNewSectPr(); ctSectPr.addNewType().setVal(STSectionMark.Enum.forString("continuous")); CTColumns ctColumns = ctSectPr.addNewCols(); ctColumns.setNum(BigInteger.valueOf(2)); ctColumns.setSep(STOnOff.Enum.forInt(1)); } private static void setDocumentMarginForSec(CTSectPr sectPr,String left,String top, String right, String bottom) { CTPageMar ctpagemar = sectPr.addNewPgMar(); if (!org.springframework.util.StringUtils.isEmpty(left)) { ctpagemar.setLeft(new BigInteger(left)); } if (!org.springframework.util.StringUtils.isEmpty(top)) { ctpagemar.setTop(new BigInteger(top)); } if (!org.springframework.util.StringUtils.isEmpty(right)) { ctpagemar.setRight(new BigInteger(right)); } if (!org.springframework.util.StringUtils.isEmpty(bottom)) { ctpagemar.setBottom(new BigInteger(bottom)); } ctpagemar.setHeader(new BigInteger(top).divide(new BigInteger("2"))); ctpagemar.setFooter(new BigInteger(bottom).divide(new BigInteger("2"))); } private static void createFooterForSec(XWPFDocument document, CTSectPr ctSectPr1) { CTP pageNo = CTP.Factory.newInstance(); XWPFParagraph paragraph = new XWPFParagraph(pageNo, document); CTPPr begin = pageNo.addNewPPr(); begin.addNewPStyle().setVal(STYLE_FOOTER); begin.addNewJc().setVal(STJc.CENTER); pageNo.addNewR().addNewFldChar().setFldCharType(STFldCharType.BEGIN); pageNo.addNewR().addNewInstrText().setStringValue("PAGE \\* MERGEFORMAT"); pageNo.addNewR().addNewFldChar().setFldCharType(STFldCharType.SEPARATE); org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR end = pageNo.addNewR(); CTRPr endRPr = end.addNewRPr(); endRPr.addNewNoProof(); endRPr.addNewLang().setVal(LANG_ZH_CN); end.addNewFldChar().setFldCharType(STFldCharType.END); FtrDocument ftrDoc = org.openxmlformats.schemas.wordprocessingml.x2006.main.FtrDocument.Factory.newInstance(); XWPFFooter footer = (XWPFFooter) document.createRelationship(XWPFRelation.FOOTER, XWPFFactory.getInstance(), 1); footer.setXWPFDocument(document); CTHdrFtr ftr = footer._getHdrFtr(); ftr.addNewP(); ftr.setPArray(0,paragraph.getCTP()); CTHdrFtrRef ctHdrFtrRef = ctSectPr1.addNewFooterReference(); ctHdrFtrRef.setType(STHdrFtr.DEFAULT); ctHdrFtrRef.setId(document.getRelationId(footer)); footer.setHeaderFooter(ftr); ftrDoc.setFtr(ftr); footer.setXWPFDocument(document); } private static void createHeaderForSec(XWPFDocument document, CTSectPr ctSectPr1, String text,boolean withSplitLine) { // 页眉文字 CTP ctp = CTP.Factory.newInstance(); XWPFParagraph paragraph = new XWPFParagraph(ctp, document); ctp.addNewR().addNewT().setStringValue(text); ctp.addNewR().addNewT().setSpace(SpaceAttribute.Space.PRESERVE); XWPFParagraph paragraph2 = null; if (withSplitLine){ // 分割线 CTP splitLine = CTP.Factory.newInstance(); paragraph2 = new XWPFParagraph(splitLine, document); CTBorder bottom = splitLine.addNewPPr().addNewPBdr().addNewTop(); bottom.setVal(STBorder.Enum.forInt(3)); } HdrDocument hdrDoc = HdrDocument.Factory.newInstance(); XWPFHeader header = (XWPFHeader) document.createRelationship(XWPFRelation.HEADER, XWPFFactory.getInstance(), 1); CTHdrFtr hdr = header._getHdrFtr(); hdr.addNewP(); hdr.setPArray(0,paragraph.getCTP()); if (withSplitLine){ hdr.addNewP(); hdr.setPArray(1,paragraph2.getCTP()); } CTHdrFtrRef ctHdrFtrRef = ctSectPr1.addNewHeaderReference(); ctHdrFtrRef.setType(STHdrFtr.DEFAULT); ctHdrFtrRef.setId(document.getRelationId(header)); header.setHeaderFooter(hdr); hdrDoc.setHdr(hdr); header.setXWPFDocument(document); }
文章知识点与官方知识档案匹配,可进一步学习相关知识
原网址: 访问
创建于: 2023-05-05 16:18:03
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
最新评论