如何创建特定的 openTBS Word 模板?
How to create a specific openTBS Word Template?
我有一个 php 程序,它使用 TinyButStrong 和 OpenTBS 插件。我尝试了很多例子,也直接编辑了 xml。尽管如此,我还是不明白,所有的实验开始让我感到沮丧,所以这是我的问题:
该模板只是一封写给客户的标准信函,上面有地址信息,如下所示:
[a;block=w:body]
[a.company_name; magnet=w:p]
[a.first_name][a.last_name]
[a.street]
[a.postalcode] [a.city]
[a.country]
作为xml它看起来像:
<w:p w:rsidR="001A4536" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t>[a;block=w:body]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t xml:space="preserve">[a.company_name; magnet=w:p] </w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t>[a.first_name] [a.last_name]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF" w:rsidP="007D3CAF">
<w:r>
<w:t>[a.street]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF" w:rsidP="007D3CAF">
<w:r>
<w:t>[a.postalcode] [a.city]</w:t>
</w:r>
</w:p>
如果没有公司名称或没有名字和姓氏,则不应浪费一行。我该如何实现?
如果有比 openTBS 更好的创建 word 文档的方法,我也会考虑吗?
首先,您的块定义 block=w:body
不合适,因为 XML 内容中只能有一个 <w:body>
元素。但是 TBS 会为您数据中的每条记录复制此元素。
您应该将 block=w:body
更改为 block=tbs:p+tbs:p+tbs:p+tbs:p+tbs:p
,它定义了超过 5 个段落的块。
In case there is no company name or no first and lastname there
shouldn't be a line wasted. How do I achieve that?
TBS 字段[a.company_name; magnet=w:p]
使用正确。
您可以对名字+姓氏使用相同的方法,但在这种情况下,您必须定义一个数据列,它是两者的串联,以便在其上使用 magnet
参数。如果您无法定义数据列,您可以使用参数 ondata 和自定义 PHP 函数来添加虚拟列。
我有一个 php 程序,它使用 TinyButStrong 和 OpenTBS 插件。我尝试了很多例子,也直接编辑了 xml。尽管如此,我还是不明白,所有的实验开始让我感到沮丧,所以这是我的问题:
该模板只是一封写给客户的标准信函,上面有地址信息,如下所示:
[a;block=w:body]
[a.company_name; magnet=w:p]
[a.first_name][a.last_name]
[a.street]
[a.postalcode] [a.city]
[a.country]
作为xml它看起来像:
<w:p w:rsidR="001A4536" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t>[a;block=w:body]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t xml:space="preserve">[a.company_name; magnet=w:p] </w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t>[a.first_name] [a.last_name]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF" w:rsidP="007D3CAF">
<w:r>
<w:t>[a.street]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF" w:rsidP="007D3CAF">
<w:r>
<w:t>[a.postalcode] [a.city]</w:t>
</w:r>
</w:p>
如果没有公司名称或没有名字和姓氏,则不应浪费一行。我该如何实现?
如果有比 openTBS 更好的创建 word 文档的方法,我也会考虑吗?
首先,您的块定义 block=w:body
不合适,因为 XML 内容中只能有一个 <w:body>
元素。但是 TBS 会为您数据中的每条记录复制此元素。
您应该将 block=w:body
更改为 block=tbs:p+tbs:p+tbs:p+tbs:p+tbs:p
,它定义了超过 5 个段落的块。
In case there is no company name or no first and lastname there shouldn't be a line wasted. How do I achieve that?
TBS 字段[a.company_name; magnet=w:p]
使用正确。
您可以对名字+姓氏使用相同的方法,但在这种情况下,您必须定义一个数据列,它是两者的串联,以便在其上使用 magnet
参数。如果您无法定义数据列,您可以使用参数 ondata 和自定义 PHP 函数来添加虚拟列。