0

我正在尝试使用 OpenTBS 将文本合并到多张幻灯片,但无法在多张幻灯片的标题中替换 [a.ProjectName]。

我按照 OpenTBS 中的演示进行操作,但是当我使用下面的代码检索项目名称时,我无法使块替换成功。

这是我使用的代码:

  $data = array ('ProjectName' => $manageProjectName->getProjectName());

  $TBS->MergeBlock('a', $data);

  $TBS->Plugin(OPENTBS_SELECT_SLIDE, 1, true);  //true means use slide master but it is not having any effect     

如何使用 OpenTBS 将 [a.ProjectName] 替换为多张幻灯片中的 ProjectName 的内容并合并 ProjectName 的内容到多张幻灯片?

4

1 回答 1

1

以下是您的情况需要考虑的要点:

  • 您必须先选择一张幻灯片,然后才能在其上合并某些内容(MergeBlock()MergeField()和自动字段[onload][onshow])。
  • 但是当您调用 LoadTemplate() 时,OpenTBS 会自动选择普通幻灯片 #1。
  • 母版幻灯片是您必须使用命令 OPENTBS_SELECT_SLIDE 明确选择的特定幻灯片。

您的代码段中的另一个问题是您似乎混淆MergeBlock()MergeField(). MergeBlock() 用于合并作为记录集的数据(多条记录,具有多个字段);因此,该块被重复的次数与它们的记录一样多。MergeField() 用于合并项目,就像在您的代码段中一样。

所以你的代码应该是:

$data = array ('ProjectName' => $manageProjectName->getProjectName());

// Merging [a.ProjectName] in the master slide #1
$TBS->Plugin(OPENTBS_SELECT_SLIDE, 1, true); 
$TBS->MergeField('a', $data);

// Merging [a.ProjectName] in the normal slide #1
$TBS->Plugin(OPENTBS_SELECT_SLIDE, 1); 
$TBS->MergeField('a', $data);
于 2016-03-01T11:56:28.767 回答