2

我正在使用edi9999 的 DocxTemplater 库作为从模板和 JSON 数据创建 .docx 报告的解决方案,对此我很满意。

但是,现在我必须在我的报告中突出显示一些词。例如,我需要{contents}用一些大文本替换,其中突出显示的单词很少。

这意味着我在这里有两个解决方案:

  1. 在我的数据中使用某种标记(例如in this data one {highlight(red)}{word} is red,然后由 DocxTemplater.
  2. 直接用所需的 xml 替换标签。例如,我用这个 xml 替换(作为字段{contents}存储在我的 JSON 数据中) :. 如果我现在这样做,我会将我的 XML 嵌入到 中,以便 MS Word 认为该文件已损坏。"contents"<w:r> <w:rPr> <w:highlight w:val="cyan"/> </w:rPr> <w:t>lol</w:t> </w:r><w:r><w:t>HERE</w:t></w:r>

对于“原始” xml 数据,我想使用某种特殊标记,例如{@myXmlData},这将防止库使用<w:r><w:t></w:t></w:r>.

我认为第二种解决方案在很多方面都优越而且非常灵活:它允许用户使用 DocxTemplater,即使它不能满足他们的某些需求。他们可以只使用 XML 来满足他们非常特殊的需求。

我认为这对于 DocxTemplater 库来说确实是一个很棒的新功能。

但是,现在我只想解决我的问题,我没有时间彻底研究或修改库的代码。

如果有人指出库代码中的位置以及如何轻松扩展它以添加此功能的想法,那就太好了。

编辑:现在支持此功能!查看https://github.com/edi9999/docxtemplater/issues/7

4

1 回答 1

0

我确实在https://github.com/edi9999/docxtemplater/issues/7之后实现了这一点

你可以写

在您的文档中:

{@rawXml}

在您的数据中:

{
  rawXml:'<w:p> <w:r> <w:rPr> <w:highlight w:val="cyan"/></w:rPr> <w:t>lol</w:t> </w:r> </w:p>'
}
于 2015-07-27T21:37:59.710 回答