Как создать документ Word из шаблона с помощью привязки данных Content Control с OpenDoPE

У меня есть шаблон Word со шрифтами, цветами и т. Д. Я запрашиваю базу данных и извлекаю информацию в POJO. Я хочу извлечь соответствующую информацию из указанного POJO и создать документ Word в соответствии с директивами моего шаблона.

В документе будут tables и graphs, поэтому мне нужно использовать привязку данных управления контентом. Насколько я понимаю, для этого мне нужно сделать следующее

  1. Измените шаблон Word, чтобы добавить элементы управления содержимым
  2. Превратите POJO в объект XML (шаблон?)
  3. Используйте ContentControlMergeXML для привязки данных XML к шаблону Word

К сожалению, я нигде не могу найти хороший пошаговый пример. Почти все ссылки на docx4j форуме ведут на неработающие GitHub страницы

Мои вопросы

  1. Как я могу использовать OpenDoPE для добавления тегов в мой шаблон Word? Мне нужно сохранить стиль, поэтому мне нужна правильная OpenDoPE версия
  2. Следует ли POJO преобразовать в объект или документ XML?
  3. Есть ли бесконечный пример всего этого процесса, чтобы я мог следить за ним? (желательно с исходным кодом)

person The Smiley Faced Balloon    schedule 29.04.2019    source источник


Ответы (1)


Привязка данных элемента управления содержимым по существу вводит значение XPath в элемент управления содержимым в документе Word.

Этот XPath сравнивается с XML-документом, так что да, вам нужно преобразовать ваш POJO в XML.

Создание

Теперь есть 3 различных надстройки OpenDoPE Word, которые вы можете использовать для добавления элементов управления содержимым в свой документ Word. См. Ссылки на странице https://opendope.org/implementations.html.

Самый последний предполагает фиксированный формат XML. Итак, чтобы использовать это, вам нужно преобразовать ваш POJO в соответствии с этим форматом. (то есть используйте надстройку для создания вашего docx, затем проверьте полученный XML (встроенный в docx), затем выясните, как преобразовать ваш POJO в этот).

Старые надстройки поддерживают произвольный XML, но они более грубые. Чтобы использовать один из них, сначала преобразуйте ваш POJO в XML (например, с помощью JAXB), а затем загрузите AddIn в ваш образец XML.

Время выполнения

Чтобы привязать ваш XML к «шаблону» docx для создания экземпляра docx, см. https://github.com/plutext/docx4j/blob/master/docx4j-samples-docx4j/src/main/java/.org/docx4j/samples/ContentControlBindingExtensions.java

Вы можете запустить этот образец кода с образцом docx + data; вы можете взглянуть на docx, чтобы увидеть, как выглядят элементы управления содержимым (они связывают настраиваемую xml-часть в docx, поэтому разархивируйте ее, чтобы увидеть это)

ps ссылки GitHub сломались в результате недавней реорганизации кода. GitHub недостаточно умен, чтобы динамически поддерживать их :-( См. https://www.docx4java.org/downloads.html, чтобы найти загружаемый образец кода.

person JasonPlutext    schedule 30.04.2019