从Word文档的页脚中删除段落

时间:2019-11-01 12:20:08

标签: java apache-poi

我在文档上创建了一个页脚,该页脚包含一个具有一行和三列的表,但是在该表下方有一个空的段落,使页脚比我想要的大。我读过有人说要设置文档的页边距,但我已经这样做了,它们都与底部页边距分开了。

这是方法

 static public void footer(XWPFDocument doc) {

    CTSectPr sectPr = doc.getDocument().getBody().getSectPr() == null ? doc.getDocument().getBody().addNewSectPr() : doc.getDocument().getBody().getSectPr();
    XWPFHeaderFooterPolicy footerPolicy= new XWPFHeaderFooterPolicy(doc, sectPr);

    XWPFFooter footer = footerPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);

    // create table in footer
    XWPFParagraph paragraph = footer.createParagraph();

    XmlCursor cursor = paragraph.getCTP().newCursor();
    XWPFTable table = footer.insertNewTbl(cursor);
    XWPFTableRow row = (table.getRow(0) == null)? table.createRow() : table.getRow(0);

    int twips = 1440;

    for (int i = 0; i < 3; i++) {
        XWPFTableCell cell = row.getCell(i);
        if (cell == null) cell = row.createCell();
        CTTblWidth tblWidth = cell.getCTTc().addNewTcPr().addNewTcW();
        tblWidth.setW(BigInteger.valueOf(((i == 1) ? 3 : 2) * twips));
        tblWidth.setType(STTblWidth.DXA);
        paragraph = cell.getParagraphs().get(0);
        XWPFRun run = paragraph.createRun();
        if (i == 0) {
            paragraph.setAlignment(ParagraphAlignment.LEFT);
            run.setText("blah blah blah");
        } else if (i == 1) {
            paragraph.setAlignment(ParagraphAlignment.CENTER);
            paragraph.getCTP().addNewFldSimple().setInstr("PAGE \\* MERGEFORMAT");
        } else if (i == 2) {
            paragraph.setAlignment(ParagraphAlignment.RIGHT);
            run.setText("blah blah blah");
        }
    }
}

下一个页脚。我已经键入“空行”并添加了表格的边框,所以我想我的问题更清楚了。

enter image description here

1 个答案:

答案 0 :(得分:1)

表格下方始终必须有一个段落。本段不能删除。尝试将其从Word的{​​{1}}中删除。这是不可能的。

因此,您所要做的就是通过设置一个非常低的默认字体大小(最小1pt)并将该段落后的间距设置为0来缩小该段落的高度。

GUI