admin 管理员组

文章数量: 887021

如何在Word中插入下一页

在Word操作中,如果想插入不同的页眉,就必须要将【链接到前一条页眉】取消勾选,而只有插入一个“下一页”分隔符时才能做到这个效果。


所以我们要做的就是插入“下一页”分隔符(不是别的分隔符),然后再插入页眉。

操作之前的介绍

Word文档可以先将扩展名修改为“zip”然后解压,解压后的目录结构是这样的:
├── [Content_Types].xml
├── _rels
├── docProps
├── word
├──├── _rels
├──├── document.xml

别的文件和目录省略吧,主要是“document.xml”文件,建议研究Word的同窗们先研究这个,这里基本都是正文。

如何插入下一页分隔符

其实分隔符分开的就是sectPr,俗称section,就是说我们只要在上面在插入一个sectPr元素,这个文档就会是两个section也就是成为了两个不同的部分,这是插入不同页眉的基础。

/**
     * 给 {@link XWPFDocument} 设置下一页
     * <br />
     * 也只有设置下一页形式的分页符才可以分隔不同页面的表头
     *
     * @param document {@link XWPFDocument} 对象
     */
    public static void insertNextPageChar(XWPFDocument document) {
        // 首先获取 document 的 Section 信息
        CTBody body = document.getDocument().getBody();
        // 放心, 这个 body 肯定不为空, 否则这个文档就有问题了
        XWPFParagraph paragraph = document.createParagraph();
        // 新创建的段落肯定没有 PPr, 所以需要新创建一个
        CTPPr ctpPr = paragraph.getCTP().addNewPPr();
        // 这一句其实就是设置下一页的分页符了
        CTSectPr sectPr = ctpPr.addNewSectPr();
        // 先加入到 document 的 List 中
        Document parent = Document.getParentDocument(document);
        if (parent != null) {
            parent.addSectPr(sectPr);
        }
        if (!body.isSetSectPr()) {
            // 文档没设置了 sectPr
            return;
        }
        // 把文档上的 sectPr 中的某些属性赋值给新创建的段落的 sectPr
        CTSectPr bodySectPr = body.getSectPr();
        sectPr.setPgSz(bodySectPr.getPgSz());
        sectPr.setPgMar(bodySectPr.getPgMar());
        sectPr.setCols(bodySectPr.getCols());
        sectPr.setDocGrid(bodySectPr.getDocGrid());
    }

看代码,其实是新创建了一个段落(XWPFParagraph),然后在段落的pPr里建了一个sectPr元素并赋值

后续会加上插入页眉。

本文标签: 下一页 poi Word