Gérer les portions de texte dans les présentations avec PHP

Obtenir les coordonnées d’une portion de texte

La méthode getCoordinates() a été ajoutée à la classe Portion qui permet de récupérer les coordonnées du début de la portion.

  # Instancier la classe Prseetation qui représente le PPTX
  $pres = new Presentation();
  try {
    # Remodeler le contexte de la présentation
    $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();
    }
  }

FAQ

Puis-je appliquer un hyperlien uniquement à une partie du texte dans un même paragraphe ?

Oui, vous pouvez assigner un hyperlien à une portion individuelle ; seul ce fragment sera cliquable, pas le paragraphe entier.

Comment fonctionne l’héritage de style : qu’est‑ce qu’une Portion remplace, et qu’est‑ce qui provient de Paragraph/TextFrame ?

Les propriétés au niveau de la Portion ont la priorité la plus élevée. Si une propriété n’est pas définie sur la Portion, le moteur la récupère du Paragraph ; si elle n’est pas définie non plus là, du TextFrame ou du theme style.

Que se passe-t-il si la police spécifiée pour une Portion est absente sur la machine/serveur cible ?

Les règles de substitution de police s’appliquent. Le texte peut se reflower : les métriques, la césure et la largeur peuvent changer, ce qui importe pour un positionnement précis.

Puis-je définir une transparence ou un dégradé de remplissage de texte spécifique à une Portion, indépendant du reste du paragraphe ?

Oui, la couleur du texte, le remplissage et la transparence au niveau de la Portion peuvent différer des fragments voisins.