Gérer les SmartArt dans les présentations PowerPoint en JavaScript

Obtenir le texte de SmartArt

La méthode TextFrame a maintenant été ajoutée à la classe SmartArtShape et à la classe SmartArtShape respectivement. Cette propriété vous permet d’obtenir tout le texte de SmartArt s’il ne contient pas uniquement le texte des nœuds. Le code d’exemple suivant vous aidera à récupérer le texte d’un nœud SmartArt.

var pres = new aspose.slides.Presentation("Presentation.pptx");
try {
    var slide = pres.getSlides().get_Item(0);
    var smartArt = slide.getShapes().get_Item(0);
    var smartArtNodes = smartArt.getAllNodes();
    
    for (let i = 0; i < smartArtNodes.size(); i++) {
        const smartArtNode = smartArtNodes.get_Item(i);
        for (let j = 0; j < smartArtNode.getShapes().size(); j++) {
            const nodeShape = smartArtNode.getShapes().get_Item(j);
            if (nodeShape.getTextFrame() != null) {
                console.log(nodeShape.getTextFrame().getText());
            }
        }
    }
    
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Modifier le type de disposition de SmartArt

Pour modifier le type de disposition de SmartArt. Suivez les étapes ci-dessous :

  • Créez une instance de la classe Presentation.
  • Obtenez la référence d’une diapositive en utilisant son index.
  • Ajoutez un SmartArt BasicBlockList.
  • Modifiez le LayoutType en BasicProcess.
  • Enregistrez la présentation au format PPTX.

Dans l’exemple ci‑dessous, nous avons ajouté un connecteur entre deux formes.

var pres = new aspose.slides.Presentation();
try {
    // Ajouter SmartArt BasicProcess
    var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicBlockList);
    // Modifier LayoutType en BasicProcess
    smart.setLayout(aspose.slides.SmartArtLayoutType.BasicProcess);
    // Enregistrement de la présentation
    pres.save("ChangeSmartArtLayout_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Vérifier la propriété de visibilité de SmartArt

Veuillez noter : la méthode SmartArtNode.isHidden() renvoie true si ce nœud est masqué dans le modèle de données. Pour vérifier la propriété masquée de n’importe quel nœud de SmartArt. Suivez les étapes ci‑dessus :

  • Créez une instance de la classe Presentation.
  • Ajoutez un SmartArt RadialCycle.
  • Ajoutez un nœud au SmartArt.
  • Vérifiez la propriété de visibility.
  • Enregistrez la présentation au format PPTX.

Dans l’exemple ci‑dessous, nous avons ajouté un connecteur entre deux formes.

var pres = new aspose.slides.Presentation();
try {
    // Ajouter SmartArt BasicProcess
    var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.RadialCycle);
    // Ajouter un nœud sur SmartArt
    var node = smart.getAllNodes().addNode();
    // Vérifier la propriété isHidden
    var hidden = node.isHidden();// Retourne true
    if (hidden) {
        // Effectuer des actions ou des notifications
    }
    // Enregistrement de la présentation
    pres.save("CheckSmartArtHiddenProperty_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Obtenir ou définir le type de diagramme d’organisation

Les méthodes SmartArtNode.getOrganizationChartLayout() et setOrganizationChartLayout(int) permettent d’obtenir ou de définir le type de diagramme d’organisation associé au nœud actuel. Pour obtenir ou définir le type de diagramme d’organisation, suivez les étapes ci‑dessous :

Dans l’exemple ci‑dessous, nous avons ajouté un connecteur entre deux formes.

var pres = new aspose.slides.Presentation();
try {
    // Ajouter SmartArt BasicProcess
    var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.OrganizationChart);
    // Obtenir ou définir le type de diagramme d'organisation
    smart.getNodes().get_Item(0).setOrganizationChartLayout(aspose.slides.OrganizationChartLayoutType.LeftHanging);
    // Enregistrement de la présentation
    pres.save("OrganizeChartLayoutType_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Créer un diagramme d’organisation d’image

Aspose.Slides for Node.js via Java propose une API simple pour créer des graphiques PictureOrganization facilement. Pour créer un graphique sur une diapositive :

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’une diapositive par son index.
  3. Ajoutez un graphique avec les données par défaut ainsi que le type souhaité (ChartType.PictureOrganizationChart).
  4. Enregistrez la présentation modifiée au format PPTX.

Le code suivant est utilisé pour créer un graphique.

var pres = new aspose.slides.Presentation("test.pptx");
try {
    var smartArt = pres.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.PictureOrganizationChart);
    pres.save("OrganizationChart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Obtenir ou définir l’état de SmartArt

Pour modifier le type de disposition de SmartArt. Suivez les étapes ci‑dessous :

  1. Créez une instance de la classe Presentation.
  2. Ajoutez un SmartArt sur la diapositive.
  3. Obtenez ou définissez l’état du diagramme SmartArt.
  4. Enregistrez la présentation au format PPTX.

Le code suivant est utilisé pour créer un graphique.

// Instancier la classe Presentation qui représente le fichier PPTX
var pres = new aspose.slides.Presentation();
try {
    // Ajouter SmartArt BasicProcess
    var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicProcess);
    // Obtenir ou définir l'état du diagramme SmartArt
    smart.setReversed(true);
    var flag = smart.isReversed();
    // Enregistrement de la présentation
    pres.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

FAQ

SmartArt prend‑t‑il en charge le mirroring/la réversion pour les langues RTL ?

Oui. La méthode setReversed bascule la direction du diagramme (LTR/RTL) si le type SmartArt sélectionné prend en charge la réversion.

Comment copier SmartArt sur la même diapositive ou vers une autre présentation tout en conservant le formatage ?

Vous pouvez cloner la forme SmartArt via la collection de formes (ShapeCollection.addClone) ou cloner la diapositive entière contenant cette forme. Les deux approches conservent la taille, la position et le style.

Comment rendre SmartArt en image raster pour l’aperçu ou l’export Web ?

Vous pouvez rendre la diapositive (ou l’ensemble de la présentation) en PNG/JPEG via l’API qui convertit les diapositives/présentations en images — SmartArt sera dessiné comme partie de la diapositive.

Comment sélectionner de manière programmatique un SmartArt spécifique sur une diapositive s’il y en a plusieurs ?

Une pratique courante consiste à utiliser le texte alternatif (Alt Text) ou setName et à rechercher la forme par cet attribut à l’aide de Slide.getShapes, puis à vérifier le type pour confirmer qu’il s’agit d’un SmartArt. La documentation décrit les techniques typiques pour trouver et travailler avec les formes.