OpenTBS / PHP / PowerPoint 模板 - 如何合并多张幻灯片中的文本?

OpenTBS / PHP / PowerPoint Template - How do I merge text across multiple slides?

我正在尝试使用 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     

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

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

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

您的代码段中的另一个问题是您似乎混淆了 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);