Docx4j - 用HTML内容替换Word合并字段

时间:2014-11-26 10:54:48

标签: html docx docx4j mergefield

我正在尝试替换Word合并字段" test" HTML内容:

String myText = "<html><body><h1>Hello</h1></body></html>"; 

使用Docx4j。

  String myText = "<html><body><h1>Hello</h1></body></html>";
  try {
        WordprocessingMLPackage docxOut =
                WordprocessingMLPackage.load(new java.io.File("/tmp/template.docx"));
        Map<DataFieldName, String> data = new HashMap<>();
        data.put(new DataFieldName("test"), myText);
        org.docx4j.model.fields.merge.MailMerger.performMerge(docxOut, data, true);
        docxOut.save(new java.io.File("/tmp/newTemplate.docx"));
    } catch (Docx4JException e) {
        LOGGER.error(e.getMessage());
    }

结果,我有一个输出(newTemplate.docx),我的合并字段被替换为

"<html><body><h1>Hello</h1></body></html>" 

不被解释为HTML。我尝试添加:

  

docxOut.getContentTypeManager()。addDefaultContentType(&#34; html&#34;,&#34; text / html&#34;);

但它仍然没有奏效。我甚至不确定在替换Word合并字段时解释HTML是否可以使用Docx4j完成,或者如果我遗漏了某些内容。

欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用OpenDoPE方法将内容控件绑定到包含转义XHTML的自定义XML元素。