Я создал нижний колонтитул в документе, который включает в себя таблицу с одной строкой и тремя столбцами, но под таблицей есть пустой абзац, который делает нижний колонтитул больше, чем я хочу. Я читал кого-то, кто сказал, чтобы установить поля документа, но я уже делаю это, и все они работают отдельно от нижнего поля.
Это метод
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");
}
}
}
I 'Я получаю следующий колонтитул. Я набрал «Пустую строку» и добавил границы таблицы, так что, думаю, яснее, в чем моя проблема.