使用 PHP 管理演示文稿中的文本片段

获取文本片段的坐标

getCoordinates() 方法已添加到 Portion 类,允许检索片段起始位置的坐标。

  # 实例化表示 PPTX 的 Presentation 类
  $pres = new Presentation();
  try {
    # 重塑演示文稿的上下文
    $shape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    $textFrame = $shape->getTextFrame();
    foreach($textFrame->getParagraphs() as $paragraph) {
      foreach($paragraph->getPortions() as $portion) {
        $point = $portion->getCoordinates();
        echo("X: " . $point->$x . " Y: " . $point->$y);
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

常见问题

我可以仅对单段落中的部分文本应用超链接吗?

是的,您可以分配超链接到单个片段;只有该片段可点击,而不是整段。

样式继承是如何工作的:Portion 会覆盖哪些属性,哪些属性来自 Paragraph/TextFrame?

片段级属性具有最高优先级。如果属性未在Portion上设置,引擎会从Paragraph获取;如果在那里也未设置,则从TextFrametheme样式获取。

如果在目标机器/服务器上缺少为 Portion 指定的字体会怎样?

将应用字体替换规则。文本可能重新排版:度量、连字符和宽度可能会变化,这对精确定位很重要。

我能为特定 Portion 设置文本填充透明度或渐变,而不影响段落的其他部分吗?

是的,位于Portion级别的文本颜色、填充和透明度可以与相邻片段不同。