在我的项目中,我使用TinyButStrong / OpenTBS从模板生成Word文档。首先,我在文档中加载myuser
之类的变量。
[onload;tplvars;myuser=user]
该文档提供了必需的变量,因此我可以添加这样的标签,其中名称放在变量上:
Hello [myuser.firstName]!
条件值也可以正常工作:
[onshow;block=tbs:p;when [myuser.firstName]='John'] This is a paragraph just for John.
但是当我想要显示/隐藏多个段落时,选择正确的段落(或更改模板并添加段落)并不容易。是否可以创建具有基于值显示的“开始”和“结束”的块?像这样的东西(伪代码):
Paragraph 1
[if [myuser.firstName] = 'John']
(insert random number of paragraphs and maybe tables/other stuff here)
[end if]
Paragraph n
我在TBS / OpenTBS文档中找不到任何此类内容。有人知道这样做的方法吗?
谢谢!
尼尔斯
答案 0 :(得分:4)
TBS有一个块语法[onshow; block = being] ... [onshow; block = end]但是对于OpenTBS来说这是一个不好的做法,因为实际上在内部XML中这两个标签放在两个分开的{{ 1}}实体。所以这些实体将被分成两部分,如果它们与新合并的内容相匹配,那就很幸运了。
一种解决方案是使用段落实体保护开始/结束标记。
<w:p>
另一个解决方案是在几个段落上定义一个块: 该块定义为3个段落:
[onshow;block=begin;enlarge=tbs:p;when ....] This paragraph will be deleted
Some text here.
Some text there.
[onshow;block=end;enlarge=tbs:p] This paragraph will be deleted
另一个解决方案是