Création, mise en page et ajustement automatique des formes

Création d’un Diagram

Aspose.Diagram for Python via Java lets you read and create Microsoft Visio diagrams from within your own applications, without Microsoft Office Automation. The first step when creating new documents, is to create a diagram. Then ajouter des formes et des connecteurs pour construire le diagram. Utilisez le constructeur par défaut de la classe Diagram pour créer un nouveau diagram.

Exemple de programmation

import jpype
import os
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# initialize a new Diagram
diagram = Diagram()
# save in the VSDX format
diagram.save("CreateDiagram_Out.vsdx", SaveFileFormat.VSDX)
jpype.shutdownJVM()

Formes de mise en page dans le style d’organigramme

Avec certains types de dessins connectés, tels que les organigrammes et les schémas de réseau, vous pouvez utiliser leFormes de mise en page fonctionnalité pour positionner automatiquement les formes. Le positionnement automatique est plus rapide que le déplacement manuel de chaque forme vers un nouvel emplacement.

Par exemple, si vous mettez à jour un organigramme volumineux pour inclure un nouveau processus, vous pouvez ajouter et connecter les formes qui composent le processus, puis utiliser la fonctionnalité de mise en page pour mettre automatiquement en page le dessin mis à jour.

La méthode Layout, exposée par la classe Diagram, met en page les formes et/ou redirige les connecteurs sur toutes les pages du diagram. Cette méthode accepte un objet LayoutOptions comme argument. Utilisez les différentes propriétés exposées par la classe LayoutOptions pour disposer automatiquement les formes.

L’image ci-dessous montre le diagram chargé par les extraits de code de cet article, avant l’application de la mise en page automatique. Les extraits de code montrent comment appliquer des dispositions d’organigramme et des dispositions d’arborescence compactes.

La source diagram.

tâche : image_autre_texte

Les extraits de code de cet article prennent la source diagram et lui appliquent plusieurs types de mise en page automatique, en enregistrant chacun dans un fichier séparé.

Disposition des formes de bas en haut

tâche : image_autre_texte

Disposition des formes de haut en bas

tâche : image_autre_texte

Formes de mise en page de gauche à droite

tâche : image_autre_texte

Formes de mise en page de droite à gauche

tâche : image_autre_texte

Pour mettre en forme des formes dans un style d’organigramme :
  1. Créez une instance de la classe Diagram.
  2. Créez une instance de la classe LayoutOptions et définissez les propriétés liées au style Flowchart.
  3. Appelez la méthode Layout de la classe Diagram en passant LayoutOptions.
  4. Appelez la méthode Save de la classe Diagram pour écrire le dessin Visio.

Exemple de programmation de style organigramme

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# load an existing Visio diagram
fileName = "LayOutShapesInFlowchartStyle.vdx"
diagram = Diagram(fileName)
# set layout options
flowChartOptions = LayoutOptions()
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART)
flowChartOptions.setSpaceShapes(1)
flowChartOptions.setEnlargePage(True)
# set layout direction as BottomToTop and then save
flowChartOptions.setDirection(LayoutDirection.BOTTOM_TO_TOP)
diagram.layout(flowChartOptions)
diagram.save("sample_btm_top.vdx", SaveFileFormat.VDX)
# set layout direction as TopToBottom and then save
diagram = Diagram(fileName)
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM)
diagram.layout(flowChartOptions)
diagram.save("sample_top_btm.vdx", SaveFileFormat.VDX)
# set layout direction as LeftToRight and then save
diagram = Diagram(fileName)
flowChartOptions.setDirection(LayoutDirection.LEFT_TO_RIGHT)
diagram.layout(flowChartOptions)
diagram.save("sample_left_right.vdx", SaveFileFormat.VDX)
# set layout direction as RightToLeft and then save
diagram = Diagram(fileName)
flowChartOptions.setDirection(LayoutDirection.RIGHT_TO_LEFT)
diagram.layout(flowChartOptions)
diagram.save("sample_right_left.vdx", SaveFileFormat.VDX)
jpype.shutdownJVM()

Disposition des formes dans le style d’arbre compact

Le style d’arborescence compacte essaie de construire une structure arborescente. Il utilise le même fichier d’entrée que l’exemple ci-dessus et enregistre dans plusieurs styles d’arbres compacts différents.

Arborescence compacte - vers le bas et vers la droite

tâche : image_autre_texte

Arborescence compacte - vers le bas et vers la gauche

tâche : image_autre_texte

Arborescence compacte - droite et bas

tâche : image_autre_texte

Arborescence compacte - gauche et bas

tâche : image_autre_texte

Pour disposer des formes dans le style d’arborescence compacte :
  1. Créez une instance de la classe Diagram.
  2. Créez une instance de la classe LayoutOptions et définissez les propriétés de style d’arborescence compacte.
  3. Appelez la méthode Layout de la classe Diagram en passant LayoutOptions.
  4. Appelez la méthode Save de la classe Diagram pour écrire le fichier Visio.

Exemple de programmation de style d’arborescence compacte

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
fileName = "LayOutShapesInCompactTreeStyle.vdx"
# load an existing Visio diagram
diagram = Diagram(fileName)
# set layout options
compactTreeOptions = LayoutOptions()
compactTreeOptions.setLayoutStyle(LayoutStyle.COMPACT_TREE)
compactTreeOptions.setEnlargePage(True)
# set layout direction as DownThenRight and then save
compactTreeOptions.setDirection(LayoutDirection.DOWN_THEN_RIGHT)
diagram.layout(compactTreeOptions)
diagram.save("sample_down_right.vdx", SaveFileFormat.VDX)
# set layout direction as DownThenLeft and then save
diagram = Diagram(fileName)
compactTreeOptions.setDirection(LayoutDirection.DOWN_THEN_LEFT)
diagram.layout(compactTreeOptions)
diagram.save("sample_down_left.vdx", SaveFileFormat.VDX)
# set layout direction as RightThenDown and then save
diagram = Diagram(fileName)
compactTreeOptions.setDirection(LayoutDirection.RIGHT_THEN_DOWN)
diagram.layout(compactTreeOptions)
diagram.save("sample_right_down.vdx", SaveFileFormat.VDX)
# set layout direction as LeftThenDown and then save
diagram = Diagram(fileName)
compactTreeOptions.setDirection(LayoutDirection.LEFT_THEN_DOWN)
diagram.layout(compactTreeOptions)
diagram.save("sample_left_down.vdx", SaveFileFormat.VDX)
jpype.shutdownJVM()

Ajustement automatique du Visio Diagram

Aspose.Diagram API prend en charge l’ajustement automatique du dessin Visio. Cette opération de fonctionnalité permet d’amener des formes extérieures à l’intérieur de la limite de page Visio.

Aspose.Diagram for Python via Java API has the Diagram class that represents a Visio drawing. The DiagramSaveOptions class exposes AutoFitPageToDrawingContent property to auto fit the Visio drawing.

Cet exemple fonctionne comme suit :

  1. Créez un objet de la classe Diagram.
  2. Créez un objet de la classe DiagramSaveOptions et transmettez le format de fichier résultant.
  3. Définissez la propriété AutoFitPageToDrawingContent de l’objet DiagramSaveOptions.
  4. Appelez la méthode Save de l’objet de classe Diagram et transmettez également le chemin d’accès complet au fichier et l’objet DiagramSaveOptions.

Exemple de programmation d’ajustement automatique

L’exemple de code suivant montre comment ajuster automatiquement les formes dans le Visio diagram.

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# load a Visio diagram
diagram = Diagram("BFlowcht.vsdx")
# use saving options
options = DiagramSaveOptions(SaveFileFormat.VSDX)
# set Auto fit page property
options.setAutoFitPageToDrawingContent(True)
# save Visio diagram
diagram.save("AutoFitShapesInVisio_Out.vsdx", options)
jpype.shutdownJVM()

Travailler avec le projet VBA

Modifier le code du module VBA dans Visio Diagram

This article demonstrates how to modify a VBA module code automatically using Aspose.Diagram for Python via Java.

Nous avons ajouté les classes VbaModule, VbaModuleCollection, VbaProject, VbaProjectReference et VbaProjectReferenceCollection. Ces classes aident à prendre le contrôle du projet VBA. Les développeurs peuvent extraire et modifier le code du module VBA.

Modifier l’exemple de programmation de code de module VBA

Veuillez vérifier cet exemple de code :

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
diagram = Diagram("Macro.vsdm")
# extract VBA project
v = diagram.getVbaProject()
# Iterate through the modules and modify VBA macro code
for i in range(0, diagram.getVbaProject().getModules().getCount() - 1):
module = diagram.getVbaProject().getModules().get(i)
code = module.getCodes()
if code.contains("This is test message."):
code = code.replace("This is test message.", "This is Aspose.Diagram message.")
module.setCodes(code)
# save the Visio diagram
diagram.save("out.vssm", SaveFileFormat.VSSM)
jpype.shutdownJVM()

Supprimer toutes les macros du Visio Diagram

Aspose.Diagram for Python via Java allows developers to remove all macros from the Visio diagram.

La propriété JavaProjectData, exposée par la classe Diagram, vous permet de supprimer toutes les macros du dessin Visio.

Exemple de programmation de suppression de toutes les macros

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# load a Visio diagram
diagram = Diagram("Macro.vsdm")
# remove all macros
diagram.setVbProjectData(None)
# Save diagram
diagram.save("RemoveMacrosFromVisio_Out.vsdx", SaveFileFormat.VSDX)
jpype.shutdownJVM()