【问题标题】:How to add new line in replacement string - Docx4j如何在替换字符串中添加新行 - Docx4j
【发布时间】:2021-07-02 15:46:33
【问题描述】:

我将 Docx4j 与 Java/Spring 一起使用,并且我构建了一个服务,该服务用变量值替换文档中的一些占位符。

所以在我的 docx 中,我有一个像这样的“占位符”:[address],我用 5 个不同的变量组合替换。

我这样做的代码是:

    Docx4JSRUtil.searchAndReplace(template, Stream.of(new String[][] {
     "[address]", "" + cust_street + " " + " " + cust_locality + " " + cust_cap ""
}

所以实际上我的代码用同一行上的所有值替换了占位符。 但我真正需要完成的是用换行符将这 3 个变量写在 2 行不同的行上。

所以而不是像这样的结果: cust street cust locality cust cap

我需要这样的结果:

客栈

cust locality cust cap

提前感谢大家:)

【问题讨论】:

    标签: java spring docx4j


    【解决方案1】:

    基于Docx4JSRUtilGithub,它似乎纯粹用于替换您定义的变量。也就是说,您可能需要编辑模板本身,以便实用程序仅替换为提供的值。

    不要使用该实用程序来更改模板的格式,这会破坏拥有一个模板的全部目的。

    new_template.docx
    
    ${address}
    ${addressDetails}
    
    Docx4JSRUtil.searchAndReplace(template, Map.of(
            "${address}", cust_street,
            "${addressDetails}", cust_locality + " " + cust_cap
    ));
    
    

    那必须生成:

    new_doc.docx
    
    cust_address
    cust_locality cust_cap
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 2013-12-13
      • 1970-01-01
      • 2018-01-14
      • 2015-06-16
      • 2016-04-05
      相关资源
      最近更新 更多