在 PHP 中管理演示文稿占位符

更改占位符中的文本

使用 Aspose.Slides for PHP via Java,您可以在演示文稿的幻灯片中查找并修改占位符。Aspose.Slides 允许您更改占位符中的文本。

先决条件:您需要一个包含占位符的演示文稿。可以在标准的 Microsoft PowerPoint 应用程序中创建此类演示文稿。

以下演示了如何使用 Aspose.Slides 替换该演示文稿中占位符的文本:

  1. 实例化 Presentation 类,并将演示文稿作为参数传入。
  2. 通过索引获取幻灯片引用。
  3. 遍历形状以查找占位符。
  4. 将占位符形状类型转换为 AutoShape 并使用与该 AutoShape 关联的 TextFrame 更改文本。
  5. 保存修改后的演示文稿。

下面的 PHP 代码演示了如何更改占位符中的文本:

  # 实例化 Presentation 类
  $pres = new Presentation("ReplacingText.pptx");
  try {
    # 访问第一张幻灯片
    $sld = $pres->getSlides()->get_Item(0);
    # 遍历形状以查找占位符
    foreach($sld->getShapes() as $shp) {
      if (!java_is_null($shp->getPlaceholder())) {
        # 更改每个占位符中的文本
        $shp->getTextFrame()->setText("This is Placeholder");
      }
    }
    # 保存演示文稿到磁盘
    $pres->save("output.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

在占位符中设置提示文本

标准和预设布局包含诸如 单击以添加标题单击以添加副标题 的占位符提示文本。使用 Aspose.Slides,您可以将首选的提示文本插入占位符布局。

下面的 PHP 代码演示了如何在占位符中设置提示文本:

  $pres = new Presentation("Presentation.pptx");
  try {
    $slide = $pres->getSlides()->get_Item(0);
    # 遍历幻灯片
    foreach($slide->getSlide()->getShapes() as $shape) {
      if (java_instanceof($shape->getPlaceholder()) != null && $shape, new JavaClass("com.aspose.slides.AutoShape")) {
        $text = "";
        # PowerPoint 显示 "单击以添加标题"
        if ($shape->getPlaceholder()->getType() == PlaceholderType::CenteredTitle) {
          $text = "Add Title";
        } else // 添加副标题
        if ($shape->getPlaceholder()->getType() == PlaceholderType::Subtitle) {
          $text = "Add Subtitle";
        }
        $shape->getTextFrame()->setText($text);
        echo("Placeholder with text: " . $text);
      }
    }
    $pres->save("Placeholders_PromptText.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

设置占位符图像透明度

Aspose.Slides 允许您设置文本占位符中背景图像的透明度。通过调整此框架内图片的透明度,您可以使文本或图像更加突出(取决于文本和图片的颜色)。

下面的 PHP 代码演示了如何为形状内部的图片背景设置透明度:

  $presentation = new Presentation("example.pptx");
  $shape = $presentation->getSlides()->get_Item(0)->getShapes()->get_Item(0);
  $operationCollection = $shape->getFillFormat()->getPictureFillFormat()->getPicture()->getImageTransform();
  for($i = 0; $i < java_values($operationCollection->size()) ; $i++) {
    if (java_instanceof($operationCollection->get_Item($i)), new JavaClass("com.aspose.slides.AlphaModulateFixed")) {
      $alphaModulate = $operationCollection->get_Item($i);
      $currentValue = 100 - $alphaModulate->getAmount();
      echo("Current transparency value: " . $currentValue);
      $alphaValue = 40;
      $alphaModulate->setAmount(100 - $alphaValue);
    }
  }
  $presentation->save("example_out.pptx", SaveFormat::Pptx);

常见问题

什么是基础占位符,它与幻灯片上的本地形状有什么区别?

基础占位符是布局或母版上原始的形状,幻灯片的形状从中继承类型、位置和部分格式。本地形状是独立的;如果没有基础占位符,则不适用继承。

如何在不遍历每张幻灯片的情况下更新整个演示文稿中的所有标题或说明文字?

编辑布局或母版上的相应占位符。基于这些布局/母版的幻灯片将自动继承更改。

如何控制标准页眉/页脚占位符——日期时间、幻灯片编号和页脚文本?

在相应的范围(普通幻灯片、布局、母版、备注/讲义)使用 HeaderFooter 管理器,开启或关闭这些占位符并设置其内容。