[英]Docx4j add w:sdt content control programmatically
我正在构建一个小型java程序来测试我需要用docx4j覆盖的所有“文档相关”功能,以满足我的项目要求。 摘要:能够创建具有“内容控件”的模板,这些模板将作为“原始模板”提供给用户。 让用户增强它们,最后用数据填充它们。 由于“重复和条件”功能,我正在处理“docx4j”。
这是我的进步,以编程方式:
1)创建一个空白文档(DONE)
2)使用xml数据添加自定义xml部件(发票示例中的part3.xml)。 (DONE)
3)使用xml xpaths引用添加自定义xml部件(发票示例中的part4.xml)。 (DONE)
4)添加内容控件(PENDING)
它必须与发票示例中的此摘录类似:
<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)执行“strip”(DONE,除去repat标签除外)
非常感谢您的帮助! 大卫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.