Я создаю небольшую программу Java для тестирования всех функций, связанных с документами, которые мне нужно использовать с помощью docx4j для выполнения требований моего проекта. Вкратце: возможность создавать шаблоны с «элементами управления содержимым», которые будут предлагаться пользователям как «сырые шаблоны». Позвольте пользователю улучшить их, чтобы, наконец, заполнить их данными. Я имею дело с «docx4j» из-за «повторяющихся и условных» функций.
Это был мой прогресс программно:
1) Создать пустой документ (ГОТОВО)
2) Добавьте пользовательскую часть xml с данными xml (part3.xml в примере со счетом). (ГОТОВО)
3) Добавьте пользовательскую xml-часть со ссылкой xml xpaths (part4.xml в примере со счетом-фактурой). (ГОТОВО)
4) Добавить элемент управления содержимым (ОЖИДАНИЕ)
Это должно быть что-то похожее на этот отрывок из примера счета:
<w:sdt>
<w:sdtPr>
<w:alias w:val="Customer name" />
<w:tag w:val="od:xpath=x1&customer name=customer name" />
<w:id w:val="1418037941" />
<w:placeholder>
<w:docPart w:val="DefaultPlaceholder_22675703" />
</w:placeholder>
<w:dataBinding w:xpath="/invoice[1]/customer[1]/name[1]" w:storeItemID="{8B049945-9DFE-4726-9DE9-CF5691E53858}" />
<w:text />
</w:sdtPr>
<w:sdtContent>
<w:p>
<w:r>
<w:t>Joe Bloggs</w:t>
</w:r>
</w:p>
</w:sdtContent>
</w:sdt>
И вот мой вопрос: как сгенерировать этот xml? Можно ли сделать с помощью Java-кода или только из Word? Что такое и как генерируются значения «1418037941» и «DefaultPlaceholder_22675703»? Думаю, я не могу их «изобрести», и на них ссылаются где-то еще. Я искал какой-то метод в классе MainDocumentPart для этого, но не смог его найти. Я что-то неправильно понимаю?
Другие шаги почти в порядке для меня:
5) Выполнить "предварительную обработку" (ГОТОВО)
6) Выполнить "процесс" (ГОТОВО)
7) Выполнить "стрип" (ВЫПОЛНЕНО, кроме удаления тегов репат)
Большое спасибо за Вашу помощь! Дэйвид