Gestionar porciones de texto en presentaciones usando PHP

Obtener coordenadas de una porción de texto

Se ha añadido el método getCoordinates() a la clase Portion que permite obtener las coordenadas del inicio de la porción.

  # Instanciar la clase Presentation que representa el PPTX
  $pres = new Presentation();
  try {
    # Reformando el contexto de la presentación
    $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();
    }
  }

Preguntas frecuentes

¿Puedo aplicar un hipervínculo solo a una parte del texto dentro de un mismo párrafo?

Sí, puedes asignar un hipervínculo a una porción individual; solo ese fragmento será clicable, no todo el párrafo.

¿Cómo funciona la herencia de estilos: qué sobrescribe una Porción y qué se toma del Párrafo/TextFrame?

Las propiedades a nivel de Porción tienen la mayor precedencia. Si una propiedad no está establecida en la Portion, el motor la toma del Paragraph; si tampoco está establecida allí, del TextFrame o del estilo del theme.

¿Qué ocurre si la fuente especificada para una Porción no está disponible en la máquina/servidor de destino?

Se aplican las reglas de sustitución de fuentes. El texto puede reflujo: las métricas, la separación de sílabas y el ancho pueden variar, lo que es relevante para una posición precisa.

¿Puedo establecer una transparencia o degradado de relleno de texto específico de una Porción, independiente del resto del párrafo?

Sí, el color, el relleno y la transparencia del texto a nivel de Portion pueden diferir de los fragmentos vecinos.