Обновление заголовка страницы файла.docx с использованием Apache POI

Как я могу обновить заголовок страницы .docx файл с помощью API Apache POI 3.7?

3 ответа

Решение

Прежде всего, вызовите getHeaderFooterPolicy() для вашего XWPFDocument, который возвращает HeaderFooterPolicy. Исходя из этого, вы можете определить соответствующий заголовок для вашей страницы (например, Default, First Page и т. Д.)

Если у вас есть соответствующий XWPFHeader, который вы хотите изменить, вы можете редактировать его как любую другую часть документа. Вы можете выбрать таблицы, абзацы и т. Д., Затем удалить их, добавить новые, изменить их текст и т. Д. Это все тот же процесс, что и редактирование основного документа.

Поскольку ваш документ находится в .docx формат, вам нужно использовать API компонента XWPF проекта POI. Вы можете найти org.apache.poi.xwpf.usermodel.XWPFHeader класс полезен ( Javadoc), но я никогда не использовал его сам.

Я не смог найти хорошую ссылку для этого с XWPF, но в следующих инструкциях описывается доступ к заголовкам с помощью HWPF, аналогичного интерфейса для старых документов Word (AKA .doc документы):

Чтобы получить верхние и нижние колонтитулы документа Word, сначала создайте org.apache.poi.hwpf.HWPFDocument, Далее вам нужно создать org.apache.poi.hwpf.usermodel.HeaderStoresПройдя твой HWPFDocument, Наконец, HeaderStores дает вам доступ к верхним и нижним колонтитулам, включая первые / четные / нечетные страницы, если они определены в вашем документе. Дополнительно, HeaderStores предоставляет метод для удаления любых макросов в тексте, который полезен, так как многие верхние и нижние колонтитулы заканчиваются макросами в них.

Страница, из которой взяты эти инструкции, подразумевает, что поддержка заголовков никогда не была так хороша в HWPF, не говоря уже о XWPF. Из-за других плохих новостей эта другая страница Apache звучит так, как будто разработка XWPF почти остановилась. Возможно, то, что вы хотите сделать, запланировано, но еще не поддерживается.

Проверьте написание документов Microsoft Word на Java с помощью Apache POI

Я никогда раньше не работал с файлом Word, но сделал это с библиотекой POI для материалов Excel, за ними довольно легко следить (они моделируют строки, столбцы, таблицы и т. Д. Для Excel), поэтому я предполагаю, что их будет так же легко сделать для Word файлы.

И быстро прочитайте их руководство Apache POI - HWPF - Java API для обработки файлов Microsoft Word

Другие вопросы по тегам