Gérer SmartArt dans les présentations PowerPoint sur Android
Obtenir le texte d’un objet SmartArt
La méthode TextFrame a maintenant été ajoutée à l’interface ISmartArtShape et à la classe SmartArtShape respectivement. Cette propriété vous permet d’obtenir tout le texte de SmartArt s’il ne contient pas seulement le texte des nœuds. Le code d’exemple suivant vous aidera à obtenir le texte d’un nœud SmartArt.
Presentation pres = new Presentation("Presentation.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
ISmartArt smartArt = (ISmartArt)slide.getShapes().get_Item(0);
ISmartArtNodeCollection smartArtNodes = smartArt.getAllNodes();
for (ISmartArtNode smartArtNode : smartArtNodes)
{
for (ISmartArtShape nodeShape : smartArtNode.getShapes())
{
if (nodeShape.getTextFrame() != null)
System.out.println(nodeShape.getTextFrame().getText());
}
}
} finally {
if (pres != null) pres.dispose();
}
Modifier le type de mise en page d’un objet SmartArt
Pour modifier le type de mise en page 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 SmartArt BasicBlockList.
- Modifiez LayoutType en BasicProcess.
- Enregistrez la présentation au format PPTX.
Dans l’exemple ci-dessous, nous avons ajouté un connecteur entre deux formes.
Presentation pres = new Presentation();
try {
// Ajouter SmartArt BasicProcess
ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);
// Modifier LayoutType en BasicProcess
smart.setLayout(SmartArtLayoutType.BasicProcess);
// Enregistrement de la présentation
pres.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Vérifier la propriété de visibilité d’un objet SmartArt
Veuillez noter : la méthode ISmartArtNode.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-dessous :
- Créez une instance de la classe Presentation.
- Ajoutez SmartArt RadialCycle.
- Ajoutez un nœud à 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.
Presentation pres = new Presentation();
try {
// Ajouter SmartArt BasicProcess
ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.RadialCycle);
// Ajouter un nœud sur SmartArt
ISmartArtNode node = smart.getAllNodes().addNode();
// Vérifier la propriété isHidden
boolean hidden = node.isHidden(); // Retourne true
if (hidden)
{
// Effectuer des actions ou des notifications
}
// Enregistrement de la présentation
pres.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Obtenir ou définir le type d’organigramme
Les méthodes ISmartArtNode.getOrganizationChartLayout() et setOrganizationChartLayout(int) permettent d’obtenir ou de définir le type d’organigramme associé au nœud actuel. Pour obtenir ou définir le type d’organigramme, suivez les étapes ci-dessous :
- Créez une instance de la classe Presentation.
- Ajoutez SmartArt sur la diapositive.
- Obtenez ou set the organization chart type.
- Enregistrez la présentation au format PPTX.
Dans l’exemple ci-dessous, nous avons ajouté un connecteur entre deux formes.
Presentation pres = new Presentation();
try {
// Ajouter SmartArt BasicProcess
ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);
// Obtenir ou définir le type d'organigramme
smart.getNodes().get_Item(0).setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);
// Enregistrement de la présentation
pres.save("OrganizeChartLayoutType_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Créer un organigramme d’images
Aspose.Slides for Android via Java propose une API simple pour créer des graphiques PictureOrganization de manière facile. Pour créer un graphique sur une diapositive :
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive par son index.
- Ajoutez un graphique avec des données par défaut ainsi que le type souhaité (ChartType.PictureOrganizationChart).
- Enregistrez la présentation modifiée au format PPTX.
Le code suivant est utilisé pour créer un graphique.
Presentation pres = new Presentation("test.pptx");
try {
ISmartArt smartArt = pres.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
pres.save("OrganizationChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Obtenir ou définir l’état du SmartArt
Pour changer le type de mise en page de SmartArt, suivez les étapes ci-dessous :
- Créez une instance de la classe Presentation.
- Ajoutez SmartArt sur la diapositive.
- Get ou Set l’état du diagramme SmartArt.
- 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
Presentation pres = new Presentation();
try {
// Ajouter SmartArt BasicProcess
ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicProcess);
// Obtenir ou définir l'état du diagramme SmartArt
smart.setReversed(true);
boolean flag = smart.isReversed();
// Enregistrement de la présentation
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Le SmartArt prend-il en charge le miroir/inversion pour les langues RTL ?
Oui. La méthode setReversed change la direction du diagramme (LTR/RTL) si le type de SmartArt sélectionné prend en charge l’inversion.
Comment copier le SmartArt sur la même diapositive ou dans une autre présentation tout en conservant le formatage ?
Vous pouvez clone the SmartArt shape via la collection de formes (ShapeCollection.addClone) ou clone the entire slide contenant cette forme. Les deux approches conservent la taille, la position et le style.
Comment rendre le SmartArt en image raster pour un aperçu ou une exportation Web ?
Render the slide (ou l’intégralité 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 programmétiquement un SmartArt spécifique sur une diapositive s’il y en a plusieurs ?
Une pratique courante consiste à utiliser le alternative text (texte alternatif) ou un name et à rechercher la forme par cet attribut dans les slide shapes, 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.