Gérer SmartArt dans les présentations PowerPoint avec JavaScript
Vue d’ensemble
SmartArt est un diagramme PowerPoint composé de nœuds, de formes de nœuds et d’une disposition. Avec Aspose.Slides pour Node.js via Java, vous pouvez créer des SmartArt, lire le texte de leurs nœuds, modifier leur disposition, inspecter les nœuds masqués, configurer les dispositions des organigrammes et créer des organigrammes illustrés.
Obtenir le texte d’un objet SmartArt
Un nœud SmartArt peut contenir une ou plusieurs formes. Pour lire le texte visible, parcourez SmartArt.getAllNodes, puis lisez le TextFrame retourné par SmartArtShape.getTextFrame.
let presentation = new aspose.slides.Presentation("sample.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
let shape = slide.getShapes().get_Item(0);
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
let smartArt = shape;
let nodes = smartArt.getAllNodes();
for (let nodeIndex = 0; nodeIndex < nodes.size(); nodeIndex++) {
let node = nodes.get_Item(nodeIndex);
let nodeShapes = node.getShapes();
for (let shapeIndex = 0; shapeIndex < nodeShapes.size(); shapeIndex++) {
let nodeShape = nodeShapes.get_Item(shapeIndex);
if (nodeShape.getTextFrame() != null) {
console.log(nodeShape.getTextFrame().getText());
}
}
}
}
} finally {
presentation.dispose();
}
Modifier le type de disposition d’un objet SmartArt
La disposition SmartArt contrôle la façon dont les nœuds sont disposés et connectés. L’exemple suivant crée un objet SmartArt avec la valeur BasicBlockList de SmartArtLayoutType, la change en valeur BasicProcess et enregistre la présentation.
let presentation = new aspose.slides.Presentation();
try {
let smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicBlockList);
smartArt.setLayout(aspose.slides.SmartArtLayoutType.BasicProcess);
presentation.save("ChangeSmartArtLayout_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Vérifier si un nœud SmartArt est masqué
SmartArtNode.isHidden indique si le nœud est masqué dans le modèle de données SmartArt. Les nœuds masqués peuvent exister dans la structure même lorsque la disposition sélectionnée ne les affiche pas comme éléments visibles du diagramme.
L’exemple suivant ajoute un nœud à un objet SmartArt qui utilise la valeur RadialCycle de SmartArtLayoutType et vérifie l’état masqué du nœud.
let presentation = new aspose.slides.Presentation();
try {
let smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, aspose.slides.SmartArtLayoutType.RadialCycle);
let node = smartArt.getAllNodes().addNode();
let isHidden = node.isHidden();
if (isHidden) {
console.log("The node is hidden in the SmartArt data model.");
}
presentation.save("CheckSmartArtHiddenProperty_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Obtenir ou définir la disposition de l’organigramme
Pour les diagrammes SmartArt qui utilisent une disposition d’organigramme, SmartArtNode.getOrganizationChartLayout et SmartArtNode.setOrganizationChartLayout définissent comment les nœuds enfants sont disposés sous un nœud parent. Par exemple, vous pouvez faire suspendre les nœuds enfants à gauche, à droite ou des deux côtés, selon le OrganizationChartLayoutType sélectionné.
L’exemple suivant crée un organigramme et définit la disposition du premier nœud sur la valeur LeftHanging de OrganizationChartLayoutType.
let presentation = new aspose.slides.Presentation();
try {
let smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
10, 10, 400, 300, aspose.slides.SmartArtLayoutType.OrganizationChart);
let rootNode = smartArt.getNodes().get_Item(0);
rootNode.setOrganizationChartLayout(aspose.slides.OrganizationChartLayoutType.LeftHanging);
presentation.save("OrganizationChartLayout_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Créer un organigramme illustré
Un organigramme illustré est une disposition SmartArt conçue pour les diagrammes hiérarchiques incluant des espaces réservés d’image. Utilisez la valeur PictureOrganizationChart de SmartArtLayoutType lors de l’ajout de l’objet SmartArt à une diapositive.
let presentation = new aspose.slides.Presentation();
try {
let smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
0, 0, 400, 400, aspose.slides.SmartArtLayoutType.PictureOrganizationChart);
presentation.save("PictureOrganizationChart_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
SmartArt prend-il en charge le miroir ou l’inversion pour les langues RTL ?
Oui. La méthode SmartArt.setReversed inverse la direction du diagramme de gauche à droite en droite à gauche, ou inversement, lorsque la disposition SmartArt sélectionnée prend en charge l’inversion.
Comment copier un SmartArt sur la même diapositive ou vers une autre présentation tout en conservant le formatage ?
Vous pouvez cloner la forme SmartArt avec ShapeCollection.addClone ou cloner la diapositive entière contenant le SmartArt. Les deux approches conservent la taille, la position et le formatage.
Comment rendre un SmartArt en image raster pour l’aperçu ou l’exportation Web ?
Rendre la diapositive ou la présentation entière en PNG ou JPEG. Le SmartArt est rendu comme partie intégrante de la diapositive.
Comment trouver un objet SmartArt spécifique sur une diapositive s’il y en a plusieurs ?
Attribuez une valeur distinctive à Shape.setAlternativeText ou Shape.setName sur la forme SmartArt, recherchez cette valeur dans BaseSlide.getShapes, puis vérifiez que la forme correspondante est un SmartArt.