在 PHP 中检索和更新演示文稿视图属性

关于 INormalViewProperties

表示普通视图属性。

方法getShowOutlineIconssetShowOutlineIcons指定在普通视图模式下的任意内容区域显示大纲内容时,应用程序是否应显示图标。

方法getSnapVerticalSplittersetSnapVerticalSplitter指定当侧边区域足够小时,垂直分割条是否应自动吸附到最小化状态。

属性getPreferSingleViewsetPreferSingleView指定用户是否更倾向于在全窗口单内容区域中查看,而不是标准的包含三个内容区域的普通视图。启用后,应用程序可能会选择在整个窗口中显示其中一个内容区域。

方法getVerticalBarStategetHorizontalBarState指定水平或垂直分割条应显示的状态。水平分割条将幻灯片与幻灯片下方的内容区域分隔,垂直分割条将幻灯片与侧边内容区域分隔。可能的取值有SplitterBarStateType::MinimizedSplitterBarStateType::MaximizedSplitterBarStateType::Restored

方法getRestoredLeftgetRestoredTop指定在普通视图中,当对getVerticalBarStategetHorizontalBarState分别应用SplitterBarStateType::Restored值时,顶部或侧边幻灯片区域的大小。

关于恢复 INormalViewProperties

指定普通视图中幻灯片区域的尺寸(当作为getRestoredTop的子项时为宽度,作为getRestoredLeft的子项时为高度),当区域处于可变的恢复大小(既非最小化也非最大化)时。

方法getDimensionSize指定幻灯片区域的大小(作为 restoredTop 的子项时为宽度,作为 restoredLeft 的子项时为高度)。

方法getAutoAdjust指定在应用程序中调整包含视图的窗口大小时,侧边内容区域的尺寸是否应随之自动调整以补偿新的大小。

下面的示例展示了如何访问演示文稿的ViewProperties::getNormalViewProperties属性。

  $pres = new Presentation();
  try {
    $pres->getViewProperties()->getNormalViewProperties()->setHorizontalBarState(SplitterBarStateType::Restored);
    $pres->getViewProperties()->getNormalViewProperties()->setVerticalBarState(SplitterBarStateType::Maximized);

    # 恢复演示文稿的视图属性
    $pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setAutoAdjust(true);
    $pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setDimensionSize(80);
    $pres->getViewProperties()->getNormalViewProperties()->setShowOutlineIcons(true);
    $pres->save("presentation_normal_view_state.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

设置默认缩放值

为了设置视图属性,请按以下步骤操作:

  1. 创建Presentation类的实例。
  2. 设置PresentationView Properties
  3. 将演示文稿写入为PPTX 文件。

在下面的示例中,我们已经为幻灯片视图和备注视图设置了缩放值。

  $presentation = new Presentation();
  try {
    # 设置演示文稿的视图属性
    $presentation->getViewProperties()->getSlideViewProperties()->setScale(100); // 幻灯片视图的缩放值(百分比)
    $presentation->getViewProperties()->getNotesViewProperties()->setScale(100); // 备注视图的缩放值(百分比)

    $presentation->save("Zoom_out.pptx", SaveFormat::Pptx);
  } finally {
    $presentation->dispose();
  }

常见问题

我可以为演示文稿的不同章节设置不同的视图设置吗?

视图设置在演示文稿级别定义(普通视图/幻灯片视图),而不是针对每个章节,因此在打开文档时,整份文稿使用同一套参数。

我可以为不同用户预定义不同的视图状态吗?

不能。设置存储在文件中并共享。查看器应用程序可能会尊重用户偏好,但文件本身仅包含一套视图属性。

我可以准备一个预定义视图属性的模板,以便新演示文稿以相同方式打开吗?

可以。由于视图属性存储在演示文稿级别,您可以将其嵌入模板中,并基于该模板创建新文档,从而拥有相同的初始视图配置。