【问题标题】:OpenTBS - Repeating Paragraph with Token Replacement?OpenTBS - 使用令牌替换重复段落?
【发布时间】:2020-09-02 23:02:15
【问题描述】:

我有一个基于文本(而不是基于表格)的 .docx 文档,其中一个部分在段落中有多个位置可供替换。该段落必须重复,并且为数组中的每个条目替换标记。我将继续梳理文档,但有点卡在这个文档上——大多数示例都是基于表格的,我不知道如何才能完成我的目标。

这是我目前用作模板的 .docx 文件中的部分示例:

[onshow; block=begin; personsblock=tbs:p;]
Person 1
[flex_27.xx.01] [flex_27.xx.02], currently of [flex_27.xx.05], as amazing with the following: __{this has yet to be determined}__.
[onshow; block=end; personsblock=tbs:p]

...到目前为止我的数据是:

$personarray = array(); 
$personarray[] = array('tID27.01.01'=> 'Steve', 'tID27.01.02'=>'Klutcher' , 'tID27.01.05'=>'', 'tID27.01.06'=>'Cook'); 
$personarray[] = array('tID27.02.01'=> 'Tommy', 'tID27.02.02'=>'Boonary' , 'tID27.02.05'=>'Clarksville', 'tID27.02.06'=>'Montgomery'); 

...在这一点上,我几乎迷路了。我将以编程方式将中心“代码”(由 xx 标记)替换为相关人员的数量。合并和替换有什么区别?我如何结合动作?我可以以某种方式对文档进行多次传递吗?

对不起,如果这些问题看起来很基本,但正如我所说,我已经被困在这个问题上两天了。

【问题讨论】:

    标签: php opentbs tinybutstrong


    【解决方案1】:

    当您使用block=begin ... block=end 时,这些是绝对边界的语法。它们指示源中块的开始和结束位置。 在文档中,您无权访问内部 XML 源。所以建议使用 bloc 的相对语法。

    在 PHP 中,你的数据结构应该是这样的:

    $personarray = array(); 
    $personarray[] = array('c01'=> 'Steve', 'c02'=>'Klutcher' , 'c05'=>'', 'c06'=>'Cook'); 
    $personarray[] = array('c01'=> 'Tommy', 'c02'=>'Boonary' , 'c05'=>'Clarksville', 'c06'=>'Montgomery'); 
    

    在你的 DOCX 中,你的模板 sn-p 应该是这样的:

    Person 1
    [person.c01;block=tbs:p] [person.c02], currently of [person.c05], as amazing ...
    

    假设这两行在同一个段落中。

    表达式[person.01;block=tbs:p] 是一个TBS 字段,它合并了“01”列,并将块绑定定义为嵌入该字段的段落。

    它们也是你原来的 PHP 旋转网中的一些问题:

    • 列名不应包含点 (.),因为这是 TBS 字段名称的分隔符。
    • 我使用前缀 'c' 因为 PHP 会将数字字符串键转换为数字索引。

    【讨论】:

    • 点语法是从键继承到原始数据——我把它改成了下划线,所以数组键看起来更像“tid27_01_01”。我在文档中遇到的最大问题之一是缩写的命名语法。进入 TBS 冷门后,我很难从变量/字段/块名中分辨出关键字。例如,使用“column_01”而不是“c01”在尝试使用独特语法的新库时会非常有帮助。但我肯定会开始欣赏 TBS 的力量。在您的帮助下,我能够让合并工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多