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

Obtenir les coordonnées d’une portion de texte

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

// Instancier la classe Presentation qui représente le PPTX
Presentation pres = new Presentation();
try {
    // Remodeler le contexte de la présentation
    IAutoShape shape = (IAutoShape) pres.getSlides().get_Item(0).getShapes().get_Item(0);
    
    ITextFrame textFrame = (ITextFrame) shape.getTextFrame();
    
    for (IParagraph paragraph : textFrame.getParagraphs()) 
    {
        for (IPortion portion : paragraph.getPortions()) 
        {
            Point2D.Float point = portion.getCoordinates();
            System.out.println("X: " + point.x + " Y: " + point.y);
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

FAQ

Puis-je appliquer un hyperlien à seulement 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 surcharge, et qu’est-ce qui provient du 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 depuis le Paragraph ; si elle n’est pas non plus définie là, depuis le TextFrame ou le style du theme.

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

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

Puis-je définir une transparence ou un dégradé de remplissage du texte spécifique à une Portion, indépendamment 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.