TLDR : вы можете использовать FieldUpdater docx4j для обновления поверхности документа из ваших пользовательских свойств, но вам нужно будет написать некоторый код для помещения подходящих полей DOCPROPERTY в документ (т.е. в вашем случае послевы преобразовали свой XHTML в docx).
Элементы управления содержимым не помогают настраивать свойства
Чтобы настроить docx, в Word (последние версии)Сначала включите меню разработчика (если вы этого еще не сделали).
Нажмите «Панель отображения XML».Появляющаяся панель задач позволяет вам выбирать из «основных» или «расширенных» свойств.
Щелкните правой кнопкой мыши по интересующему вас свойству;"Вставить Content COntrol"> "PLain Text".
Вы увидите это в своем документе.
Панель отображения XML не включает в себя «настраиваемые» свойства, поэтому вы не можете легко добавить их в свой документ таким образом.
Кроме того, вы создаете документ из XHTML,так что я думаю, что вам нужно программное решение для преобразования некоторых специальных тегов в элементы управления содержимым, которые связаны с частью пользовательских свойств.
Java-код для создания элемента управления содержимым может быть сгенерирован из образца docx, либоиспользуя Docx4j Helper Word AddIn или веб-приложение docx4j.
Вы должны привязать свой элемент управления контентом к части CutomXML с помощью ItemID.Некоторые пользовательские части xml хорошо известны: https://msdn.microsoft.com/en-us/library/ff531265(v=office.12).aspx
И когда я связываю свойство ядра, оно использует w: storeItemID = "{6C3C8BC8-F283-45AE-878A-BAB7291924A1}"
Но не существует storeItemID для пользовательских свойств?
https://social.msdn.microsoft.com/Forums/office/en-US/c7e66714-3224-4298-8673-1ce095db092a/how-to-create-databinding-between-custom-property-value-and-content-control-such-as-text?forum=oxmlsdk
Вы можете попробовать добавить элемент itemProps к своей части пользовательских свойств, но я сомневаюсь, что это сработает!
Итак, если вы действительно хотите использоватьПользовательские свойства с помощью подхода управления контентом, вам нужно немного изменить docx4j, чтобы связать их.
Поле DOCPROPERTY для спасения
Но существует устаревший подходдоступно: вы можете использовать поле DOCPROPERTY, которое указывает на пользовательское свойство.
И DocPropertyResolver из docx4j знает, что с ними делать.Смотрите FieldUpdater: https://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/model/fields/FieldUpdater.java.