Как создать документ Word из шаблона, используя привязку данных управления контентом с OpenDoPE - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть шаблон 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. Есть ли пример из всего этого процесса, чтобы я мог следовать за ним? (желательно с исходным кодом)

1 Ответ

0 голосов
/ 30 апреля 2019

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

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

Authoring

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

Самый последний предполагает фиксированный формат XML. Таким образом, чтобы использовать это, вам нужно преобразовать ваш POJO в соответствии с этим форматом. (т.е. используйте AddIn для создания вашего документа, затем проверьте полученный XML (встроенный в документ), а затем выясните, как преобразовать ваш 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 для загружаемого примера кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...