poi 5.2.2 操作word合集之【页眉页脚】_poi设置页眉页脚_一笑生风丶的博客-CSDN博客

poi 3.17操作Word工具包,点击此处

当前版本 5.2.2 ,版本不同,写法略有差异
- poi-5.2.2 操作word 【段落】
- poi-5.2.2 操作word 【表格】
- poi-5.2.2 操作word【单元格、行、列】
- poi 5.2.2 操作word【页眉页脚】
- poi 5.2.2 操作word【纸张、边距】
- poi-5.2.2 操作word【图片操作相关】
- poi 5.2.2 操作word【目录】

    • *

本文所需依赖

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.2.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-full</artifactId>
            <version>5.2.2</version>
        </dependency>
    • *

页眉页脚操作相关

- 创建一个页眉

   //获取这个页眉对象,可以在页眉中创建段落或者表格
   XWPFHeader header = document.createHeader(HeaderFooterType.DEFAULT);

- 创建一个页脚

    //同页眉对象一致
     XWPFFooter footer = document.createFooter(HeaderFooterType.DEFAULT);

- 设置页码

     /**
     * 段落后拼接页码
     * @param prefix  页码前缀  如 "第 1 页"  的 "第"
     * @param suffix  页码后缀  如 "第 1 页"  的 "页"
     */
    public static void appendPageNumber(XWPFParagraph paragraph ,String fontFamily , int fontSize , String color , String prefix , String suffix){
        if(StringUtil.empty(color)){
            color = "000000";
        }
        WordUtil.setStyle(paragraph.createRun(), fontFamily, fontSize, false, prefix , color);

        CTFldChar fldChar = paragraph.createRun().getCTR().addNewFldChar();
        fldChar.setFldCharType(STFldCharType.Enum.forString("begin"));

        XWPFRun numberRun = paragraph.createRun();
        CTText ctText = numberRun.getCTR().addNewInstrText();
        ctText.setStringValue("PAGE  \\* MERGEFORMAT");
        ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
        WordUtil.setStyle(numberRun, fontFamily, fontSize, false, null , color);

        fldChar = paragraph.createRun().getCTR().addNewFldChar();
        fldChar.setFldCharType(STFldCharType.Enum.forString("end"));

        WordUtil.setStyle(paragraph.createRun(), fontFamily, fontSize, false, suffix , color);
    }

- 设置页眉页脚缩进

    /**
     * 设置页眉页脚缩进
     * @param headerMar 页眉距离顶端距离  单位 磅
     * @param footerMar 页脚距离底部距离  单位 磅
     */
    public static void setHeaderFooterMar(XWPFDocument document , float headerMar , float footerMar){
        //一磅 = 20 缇
        CTBody body = document.getDocument().getBody();
        CTSectPr sectPr = body.isSetSectPr() ? body.getSectPr() : body.addNewSectPr();
        CTPageMar pgMar = sectPr.isSetPgMar() ? sectPr.getPgMar() : sectPr.addNewPgMar();
        if(headerMar >= 0){
            pgMar.setHeader(Math.round(headerMar * 20));
        }
        if(footerMar >= 0){
            pgMar.setFooter(Math.round(footerMar * 20));
        }
    }

- 获取页眉高度

    /**
     * 获取页眉高度  磅
     */
    public static int getHeaderHeight(XWPFDocument document){
        try {
            return (Integer) document.getDocument().getBody().getSectPr().getPgMar().getHeader() / 20;
        }catch (Exception e){
            return 0;
        }
    }

- 获取页脚高度

    /**
     * 获取页脚高度  磅
     */
    public static int getFooterHeight(XWPFDocument document){
        try {
            return (Integer) document.getDocument().getBody().getSectPr().getPgMar().getFooter() / 20;
        }catch (Exception e){
            return 0;
        }
    }

原网址: 访问
创建于: 2023-06-02 14:48:21
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论