我在文档上创建了一个页脚,该页脚包含一个具有一行和三列的表,但是在该表下方有一个空的段落,使页脚比我想要的大。我读过有人说要设置文档的页边距,但我已经这样做了,它们都与底部页边距分开了。
这是方法
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");
}
}
}
下一个页脚。我已经键入“空行”并添加了表格的边框,所以我想我的问题更清楚了。
答案 0 :(得分:1)
表格下方始终必须有一个段落。本段不能删除。尝试将其从Word
的{{1}}中删除。这是不可能的。
因此,您所要做的就是通过设置一个非常低的默认字体大小(最小1pt)并将该段落后的间距设置为0来缩小该段落的高度。
GUI