我正在尝试使用 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] 替换为多张幻灯片中的项目名称内容,并将项目名称的内容合并到多张幻灯片中?
以下是
您在这种情况下需要考虑的要点:
- 您必须在合并幻灯片之前选择一张幻灯片(
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);