【问题标题】:Conditional Block in word Aspose (<<if [var] )单词 Aspose 中的条件块 (<<if [var] )
【发布时间】:2021-09-03 08:42:59
【问题描述】:

我正在使用 word 中的 mailmerge 创建一个 word 文档,我需要根据条件变量显示一个词块:

<<if [var]>>
show text
<</if>>

我正在构建 json 对象以在 java 中传递一个 word 文档,例如:

InputStream targetStream = new ByteArrayInputStream(objectMapper.writeValueAsString(object).getBytes());
            JsonDataSource ds = new JsonDataSource(targetStream);
            ReportingEngine engine = new ReportingEngine();
            engine.setOptions(ReportBuildOptions.ALLOW_MISSING_MEMBERS);
            engine.buildReport(docIstanza, ds, "obj");
            docIstanza.getMailMerge().setFieldMergingCallback(new HandleFieldMerging());

我在理解如何在 word 文档中使用 if 指令时遇到了问题。 var 是一个布尔值。

【问题讨论】:

    标签: java aspose.words


    【解决方案1】:

    Mail MergeLINQ Reporting Engine 是用数据填充模板的两种不同方式。如果您使用 LINQ 报告引擎,那么在您的模板中,您应该简单地将条件作为常规文本。 https://docs.aspose.com/words/net/using-conditional-blocks/

    如果你使用邮件合并功能,你应该使用 MS Word MergeFields https://docs.aspose.com/words/java/mail-merge-template/ 在这种情况下要显示条件内容,您应该使用 IF 字段。

    在您的情况下,您从 JSON 获取数据并且 var 变量的值是可为空的布尔值。在这种情况下,您必须使用&lt;&lt;if [var == true]&gt;&gt;

    【讨论】:

    • 嗨@Alexey 感谢您的帮助,我的情况是我用 > 解决了其中 var 是布尔类型 java。这是正确的方式吗?
    • 在您的情况下,您从 JSON 获取数据并且 var 变量的值是可为空的布尔值。在这种情况下,您必须使用&lt;&lt;if [var == true]&gt;&gt;。我相应地更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2019-02-25
    • 1970-01-01
    相关资源
    最近更新 更多