形状有效属性

在本主题中,我们将讨论 有效局部 属性。当我们在这些级别直接设置值时:

  1. 在部分的幻灯片上的部分属性中;
  2. 在布局或母版幻灯片上的原型形状文本样式中(如果部分的文本框形状有一个);
  3. 在演示文稿的全局文本设置中;

这些值被称为 局部 值。在任何级别上,局部 值可以被定义或省略。但是当应用程序需要知道部分应该是什么样子时,它使用 有效 值。您可以通过使用局部格式的 getEffective() 方法来获取有效值。

以下示例代码演示了如何获取有效值:

  $pres = new Presentation("Presentation1.pptx");
  try {
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $localTextFrameFormat = $shape->getTextFrame()->getTextFrameFormat();
    $effectiveTextFrameFormat = $localTextFrameFormat::getEffective();
    $localPortionFormat = $shape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0)->getPortionFormat();
    $effectivePortionFormat = $localPortionFormat::getEffective();
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取相机的有效属性

Aspose.Slides for PHP via Java 允许开发人员获取相机的有效属性。为此,ICameraEffectiveData 接口已添加到 Aspose.Slides。 ICameraEffectiveData 接口代表一个包含有效相机属性的不变对象。 ICameraEffectiveData 接口的实例被用作 IThreeDFormatEffectiveData 接口的一部分,它是 ThreeDFormat 类的 有效值 对。

以下示例代码展示了如何获取相机的有效属性:

  $pres = new Presentation("Presentation1.pptx");
  try {
    $threeDEffectiveData = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0)->getThreeDFormat()->getEffective();
    echo("= 有效的相机属性 =");
    echo("类型: " . $threeDEffectiveData->getCamera()->getCameraType());
    echo("视场: " . $threeDEffectiveData->getCamera()->getFieldOfViewAngle());
    echo("缩放: " . $threeDEffectiveData->getCamera()->getZoom());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取光线设备的有效属性

Aspose.Slides for PHP via Java 允许开发人员获取光线设备的有效属性。为此, ILightRigEffectiveData 接口已添加到 Aspose.Slides。 ILightRigEffectiveData 接口代表一个包含有效光线设备属性的不变对象。 ILightRigEffectiveData 接口的实例被用作 IThreeDFormatEffectiveData 接口的一部分,它是 ThreeDFormat 类的 有效值 对。

以下示例代码展示了如何获取光线设备的有效属性:

  $pres = new Presentation("Presentation1.pptx");
  try {
    $threeDEffectiveData = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0)->getThreeDFormat()->getEffective();
    echo("= 有效的光线设备属性 =");
    echo("类型: " . $threeDEffectiveData->getLightRig()->getLightType());
    echo("方向: " . $threeDEffectiveData->getLightRig()->getDirection());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取斜角形状的有效属性

Aspose.Slides for PHP via Java 允许开发人员获取斜角形状的有效属性。为此, IShapeBevelEffectiveData 接口已添加到 Aspose.Slides。 IShapeBevelEffectiveData 接口代表一个包含有效形状表面浮雕属性的不变对象。 IShapeBevelEffectiveData 接口的实例被用作 IThreeDFormatEffectiveData 接口的一部分,它是 ThreeDFormat 类的 有效值 对。

以下示例代码展示了如何获取斜角形状的有效属性:

  $pres = new Presentation("Presentation1.pptx");
  try {
    $threeDEffectiveData = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0)->getThreeDFormat()->getEffective();
    echo("= 有效形状的顶部表面浮雕属性 =");
    echo("类型: " . $threeDEffectiveData->getBevelTop()->getBevelType());
    echo("宽度: " . $threeDEffectiveData->getBevelTop()->getWidth());
    echo("高度: " . $threeDEffectiveData->getBevelTop()->getHeight());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取文本框的有效属性

使用 Aspose.Slides for PHP via Java,您可以获取文本框的有效属性。为此, ITextFrameFormatEffectiveData 接口已添加到 Aspose.Slides。它包含有效的文本框格式属性。

以下示例代码展示了如何获取有效的文本框格式属性:

  $pres = new Presentation("Presentation1.pptx");
  try {
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $effectiveTextFrameFormat = $shape->getTextFrame()->getTextFrameFormat()->getEffective();
    echo("锚定类型: " . $effectiveTextFrameFormat::getAnchoringType());
    echo("自动适应类型: " . $effectiveTextFrameFormat::getAutofitType());
    echo("文本垂直类型: " . $effectiveTextFrameFormat::getTextVerticalType());
    echo("边距");
    echo("   左: " . $effectiveTextFrameFormat::getMarginLeft());
    echo("   上: " . $effectiveTextFrameFormat::getMarginTop());
    echo("   右: " . $effectiveTextFrameFormat::getMarginRight());
    echo("   下: " . $effectiveTextFrameFormat::getMarginBottom());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取文本样式的有效属性

使用 Aspose.Slides for PHP via Java,您可以获取文本样式的有效属性。为此, ITextStyleEffectiveData 接口已添加到 Aspose.Slides。它包含有效的文本样式属性。

以下示例代码展示了如何获取有效的文本样式属性:

  $pres = new Presentation("Presentation1.pptx");
  try {
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $effectiveTextStyle = $shape->getTextFrame()->getTextFrameFormat()->getTextStyle()->getEffective();
    for($i = 0; $i <= 8; $i++) {
      $effectiveStyleLevel = $effectiveTextStyle->getLevel($i);
      echo("= 样式级别 #" . $i . " 的有效段落格式 =");
      echo("深度: " . $effectiveStyleLevel->getDepth());
      echo("缩进: " . $effectiveStyleLevel->getIndent());
      echo("对齐: " . $effectiveStyleLevel->getAlignment());
      echo("字体对齐: " . $effectiveStyleLevel->getFontAlignment());
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取有效字体高度值

使用 Aspose.Slides for PHP via Java,您可以获取字体高度的有效属性。在这里,我们提供了一段代码,显示在不同的演示文稿结构级别上设置局部字体高度值后,部分的有效字体高度值变化:

  $pres = new Presentation();
  try {
    $newShape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 75, false);
    $newShape->addTextFrame("");
    $newShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->clear();
    $portion0 = new Portion("带有第一个部分的示例文本");
    $portion1 = new Portion(" 和第二个部分。");
    $newShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->add($portion0);
    $newShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->add($portion1);
    echo("创建后有效的字体高度:");
    echo("部分 #0: " . $portion0->getPortionFormat()->getEffective()->getFontHeight());
    echo("部分 #1: " . $portion1->getPortionFormat()->getEffective()->getFontHeight());
    $pres->getDefaultTextStyle()->getLevel(0)->getDefaultPortionFormat()->setFontHeight(24);
    echo("设置整个演示文稿默认字体高度后有效的字体高度:");
    echo("部分 #0: " . $portion0->getPortionFormat()->getEffective()->getFontHeight());
    echo("部分 #1: " . $portion1->getPortionFormat()->getEffective()->getFontHeight());
    $newShape->getTextFrame()->getParagraphs()->get_Item(0)->getParagraphFormat()->getDefaultPortionFormat()->setFontHeight(40);
    echo("设置段落默认字体高度后有效的字体高度:");
    echo("部分 #0: " . $portion0->getPortionFormat()->getEffective()->getFontHeight());
    echo("部分 #1: " . $portion1->getPortionFormat()->getEffective()->getFontHeight());
    $newShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0)->getPortionFormat()->setFontHeight(55);
    echo("设置部分 #0 字体高度后有效的字体高度:");
    echo("部分 #0: " . $portion0->getPortionFormat()->getEffective()->getFontHeight());
    echo("部分 #1: " . $portion1->getPortionFormat()->getEffective()->getFontHeight());
    $newShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(1)->getPortionFormat()->setFontHeight(18);
    echo("设置部分 #1 字体高度后有效的字体高度:");
    echo("部分 #0: " . $portion0->getPortionFormat()->getEffective()->getFontHeight());
    echo("部分 #1: " . $portion1->getPortionFormat()->getEffective()->getFontHeight());
    $pres->save("SetLocalFontHeightValues.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

获取表格的有效填充格式

使用 Aspose.Slides for PHP via Java,您可以获取不同表格逻辑部分的有效填充格式。为此, ICellFormatEffectiveData 接口已添加到 Aspose.Slides。它包含有效的填充格式属性。请注意:单元格格式始终优先于行格式;行优先于列;列优先于整个表格。

  $pres = new Presentation("Presentation1.pptx");
  try {
    $tbl = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $tableFormatEffective = $tbl->getTableFormat()->getEffective();
    $rowFormatEffective = $tbl->getRows()->get_Item(0)->getRowFormat()->getEffective();
    $columnFormatEffective = $tbl->getColumns()->get_Item(0)->getColumnFormat()->getEffective();
    $cellFormatEffective = $tbl->get_Item(0, 0)->getCellFormat()->getEffective();
    $tableFillFormatEffective = $tableFormatEffective->getFillFormat();
    $rowFillFormatEffective = $rowFormatEffective->getFillFormat();
    $columnFillFormatEffective = $columnFormatEffective->getFillFormat();
    $cellFillFormatEffective = $cellFormatEffective->getFillFormat();
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }