使用PHP的OpenTBS邮件合并.docx



我正在使用http://www.tinybutstrong.com/plugins/opentbs/demo/demo.html而且很难让它发挥作用。我的.docx有实字邮件合并字段。我一直在努力理解文档,我能从中得到的只是,PHP演示代码似乎声明了$your_name,然后它神奇地取代了.docx.中的onshow.your_name

在第一个实例中,我认为我将MergeBlock与$data数组一起使用。到目前为止,这是我的代码:

  $TBS = new clsTinyButStrong;
  $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
  $template = $_SERVER['DOCUMENT_ROOT'] . '/inc/dd.docx';
  $data = array();
  $data[] = array('ContactName'=>$this->title . ' ' . $this->firstname . ' ' . $this->surname,
                  'Address1'=>$this->address1,
                  'Address2'=>$this->address2,
                  'Address3'=>$this->town,
                  'Address4'=>$this->county,
                  'PostalCode'=>$this->postcode,
                  'Bacsref'=>$this->bb_number,
                  'Account_Name'=>$this->ac_name,
                  'SortCode'=>$this->CorrectedSortCode,
                  'Account_Number'=>$this->CorrectedAccountNumber);
  $ContactName = $this->title . ' ' . $this->firstname . ' ' . $this->surname;
  $TBS->LoadTemplate($template);
  $TBS->MergeBlock('a,b', $data);                
  $file_name = $this->bb_number . ' Direct Debit';
  //$TBS->Plugin(OPENTBS_DEBUG_XML_CURRENT);
  $TBS->Show(OPENTBS_DOWNLOAD, $file_name . '.docx');

下载的文件没有替换任何邮件合并字段。从演示中,我无法推断看起来不像真正的单词邮件合并字段的.your_name是如何被替换的?我看到的只是一些错误检查代码来确定$your_name。。。

OpenTBS是TinyButStrong模板引擎(也称为TBS)的插件。TBS合并text/html/xml内容,而OpenTBS+TBS合并Docx、Xlsx、Pptx、Odt、Ods。。。

这就是为什么,您需要的模板语法实际上在TinyButStrong手册中。

例如:

$your_name在docx中与标记[onload.your_name]合并,因为所有[onload.*]都是一个自动字段,当您调用$TBS->Show()时,它将被合并,并且它将与相应的PHP全局变量合并。

如果在PHP中没有定义任何名为$your_name的全局变量,那么TBS将引发一个错误,因为它无法合并[onload.your_name]

关于MergeBlock():

存在相同的数据/文件对应关系。也就是说:当您对$TBS->MergeBlock('a,b', $data);进行编码时,TBS将搜索名为"a"one_answers"b"的两个块,并将它们的字段与$data合并。所以你可以使用[a.ContactName][a.Address1]。。。由于CCD_ 11的结构。但是与包一起提供的Docx模板的字段不再有效,因为$data的结构不相同。

你可以看看TBS的在线例子,有很多字段和块语法的例子。

相关内容

  • 没有找到相关文章

最新更新