Вставить номер страницы с текстом в нижний колонтитул aspose word java

Я хочу вставить номер страницы в нижний колонтитул вместе с текстом, но когда нижний колонтитул содержит текст, номер страницы и текст в местах переключения нижнего колонтитула. Я делаю это при преобразовании документа из html в слово с использованием библиотеки java aspose слов. Текст в нижнем колонтитуле отправляется из HTML, и я просто хочу добавить номер страницы.

Код для добавления номера страницы в нижний колонтитул:

log.debug("Add page number");
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert PAGE field into the footer
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
builder.insertField("PAGE", null);
builder.write("/");
builder.insertField("NUMPAGES", null);

Кроме того, есть ли способ заменить весь текст в нижнем колонтитуле?


person Lemmy    schedule 29.03.2017    source источник


Ответы (1)


Вы можете добавить номера страниц и текст вместе в нижний колонтитул, используя следующую таблицу:

DocumentBuilder builder = new DocumentBuilder(doc);
// Insert PAGE field into the footer
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
builder.startTable();
// Clear table borders
builder.getCellFormat().clearFormatting();
builder.insertCell();
// Set first cell to 1/3 of the page width.
builder.getCellFormat().setPreferredWidth(
PreferredWidth.fromPercent(100 / 3));
// Insert page numbering text here.
// It uses PAGE and NUMPAGES fields to auto calculate current page
// number and total number of pages.
builder.insertField("PAGE", null);
builder.write("/");
builder.insertField("NUMPAGES", null);
// Align this text to the left.
builder.getCurrentParagraph().getParagraphFormat()
.setAlignment(ParagraphAlignment.LEFT);
builder.insertCell();
// Set the second cell to 2/3 of the page width.
builder.getCellFormat().setPreferredWidth(
PreferredWidth.fromPercent(100 * 2 / 3));
builder.write("(C) 2017 Aspose Pty Ltd. All rights reserved.");
// Align this text to the right.
builder.getCurrentParagraph().getParagraphFormat()
.setAlignment(ParagraphAlignment.RIGHT);
builder.endRow();
builder.endTable();

Чтобы заменить весь текст нижнего колонтитула, вы можете получить доступ к нижнему колонтитулу, очистить весь текст и добавить новое содержимое, как показано ниже:

DocumentBuilder builder = new DocumentBuilder(doc);
Section currentSection = builder.getCurrentSection();
com.aspose.words.HeaderFooter primaryHeader =  currentSection.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
primaryHeader.getParagraphs().clear();
...

Я Тилал Ахмад, евангелист-разработчик Aspose.

person Tilal Ahmad    schedule 30.03.2017