Récupérer, obtenir, copier et insérer une page

Récupération des informations sur la page

Dans Microsoft Visio, les pages sont soit des pages de premier plan, soit des pages d’arrière-plan. Pour obtenir des informations sur la page, par exemple l’ID de la page et le nom de la page, déterminez d’abord si une page est une page d’arrière-plan ou de premier plan.

L’objet Page représente la zone de dessin d’une page de premier plan ou d’une page d’arrière-plan. La propriété Pages exposée par la classe Diagram prend en charge une collection d’objets Page. Cette propriété peut être utilisée pour récupérer des informations sur la page.

Utilisez la propriété Page.Background pour déterminer si une page est une page de premier plan ou d’arrière-plan.

Récupérer un exemple de programmation d’informations sur la page

Le morceau de code suivant récupère les informations de pages d’un diagram.

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# Call the diagram constructor to load diagram
diagram = Diagram("RetrievePageInfo.vdx")
for page in diagram.getPages():
# Checks if current page is a background page
if page.getBackground() == BOOL.TRUE:
# Display information about the background page
print("Background Page ID : " + str(page.getID()))
print("Background Page Name : " + str(page.getName()))
else:
# Display information about the foreground page
print("\nPage ID : " + str(page.getID()))
print("Universal Name : " + str(page.getNameU()))
print("ID of the Background Page : " + str(page.getBackPage()))
jpype.shutdownJVM()

Obtenez la page Visio d’un Diagram

Sometimes, developers need to get a Visio drawing’s page details. Aspose.Diagram for Python via Java has features that helps them do this.

Aspose.Diagram for Python via Java offers the Diagram class that represents a Visio drawing. The Pages property exposed by the Diagram class supports a collection of Page objects. The PageCollection class exposes getPage method that can be called to get Page object.

Obtenir un objet de page Visio par ID

Cet exemple fonctionne comme suit :

  1. Créez un objet de la classe Diagram.
  2. Appelez la méthode getPage de la classe Diagram.Pages.

L’exemple suivant montre comment obtenir un objet de page par ID à partir du dessin Visio.

Obtenir un objet de page par ID Exemple de programmation

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# Call the diagram constructor to load diagram from a VDX file
diagram = Diagram("DrawingFlowCharts.vsdx")
# Set page id
page_id = 2
# Get page object by id
page2 = diagram.getPages().getPage(page_id)
jpype.shutdownJVM()

Obtenir un objet de page Visio par nom

Cet exemple fonctionne comme suit :

  1. Créez un objet de la classe Diagram.
  2. Appelez la méthode GetPage de la classe Diagram.Pages.

Obtenir un objet de page par nom Exemple de programmation

L’exemple suivant montre comment obtenir un objet de page par son nom à partir du dessin Visio.

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# Call the diagram constructor to load diagram from a VSDX file
diagram = Diagram("DrawingFlowCharts.vsdx")
# Set page name
pageName = "Flow 2"
# Get page object by name
page2 = diagram.getPages().getPage(pageName)
jpype.shutdownJVM()

Copier une page Visio dans une autre Diagram

Aspose.Diagram for Python via Java API allows developers to copy and add its content from the one Visio diagram to another. This help topic explains how to accomplish this task.

Aspose.Diagram for Python via Java API has the Diagram class that represents a Visio drawing. The Pages property exposed by the Diagram class supports a collection of Page objects. The PageCollection class exposes add method that can be called to add another Page object.

Cet exemple fonctionne comme suit :

  1. Créez un nouvel objet de la classe Diagram.
  2. Chargez un Visio diagram existant dans l’objet de classe Diagram.
  3. Ajouter tous les maîtres du Visio chargé diagram
  4. Obtenez l’objet de page à partir du diagram chargé (qui doit être copié).
  5. Définissez le nom et l’identifiant de l’objet de la page.
  6. Supprimer la page vide du nouveau diagram (facultatif).
  7. Appelez la méthode add de la classe PageCollection.
  8. Enregistrez le nouveau diagram dans la mémoire de l’ordinateur.

Copier un exemple de programmation de page Visio

L’exemple de code ci-dessous montre comment copier un objet de page Visio dans un autre dessin Visio.

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# Call the diagram constructor to load diagram from a VSD file
originalDiagram = Diagram("Drawing1.vsdx")
# initialize the new visio diagram
newDiagram = Diagram()
# add all masters from the source Visio diagram
originalMasters = originalDiagram.getMasters()
for master in originalMasters:
newDiagram.addMaster(originalDiagram, master.getName())
# get the page object from the original diagram
SrcPage = originalDiagram.getPages().getPage("Page-1")
# set page name
SrcPage.setName("new page")
# it calculates max page id
max_page_id = 0
if newDiagram.getPages().getCount() != 0:
max_page_id = newDiagram.getPages().get(0).getID()
for i in range(0, newDiagram.getPages().getCount() - 1):
if max_page_id < newDiagram.getPages().get(i).getID():
max_page_id = newDiagram.getPages().get(i).getID()
MaxPageId = max_page_id
# set page id
SrcPage.setID(MaxPageId)
# add reference of the original diagram page
newDiagram.getPages().add(SrcPage)
# remove first empty page
newDiagram.getPages().remove(newDiagram.getPages().get(0))
# save diagram in VDX format
newDiagram.save("CopyVisioPage_Out.vsdx", SaveFileFormat.VSDX)
jpype.shutdownJVM()

Copier la page Visio vers une autre instance de page

La méthode copy de la classe Page prend une instance de page à cloner.

# import diagram

diagram = Diagram(dataDir + "Drawing1.vsdx")

newPage = Page()

# copy page

newPage.copy(diagram.getPages().getPage("Page-1"))

Insérer une page vierge dans un dessin Visio

Aspose.Diagram for Python via Java can insert a new blank page into the Microsoft Office Visio drawing. This example topic describes how to do so.

La méthode add, exposée par la collection Pages, permet aux développeurs d’ajouter une nouvelle page vierge dans le Visio diagram. L’ID de page doit être attribué.

Insérer un exemple de programmation de page vierge

Le morceau de code suivant insère une page vierge dans le dessin Visio :

import jpype
import asposediagram
jpype.startJVM()
from asposediagram.api import *
lic = License()
lic.setLicense("Aspose.Total.Product.Family.lic")
# load diagram
diagram = Diagram("Drawing1.vsdx")
# it calculates max page id
max_page_id = 0
if diagram.getPages().getCount() != 0:
max_page_id = diagram.getPages().get(0).getID()
for i in range(0, diagram.getPages().getCount() - 1):
if max_page_id < diagram.getPages().get(i).getID():
max_page_id = diagram.getPages().get(i).getID()
# Initialize a new page object
newPage = Page()
# Set name
newPage.setName("new page")
# Set page ID
newPage.setID(max_page_id + 1)
# Or try the Page constructor
# Page newPage = Page(MaxPageId + 1)
# Add a new blank page
diagram.getPages().add(newPage)
# Save diagram
diagram.save("InsertBlankPageInVisio_Out.vsdx", SaveFileFormat.VSDX)
jpype.shutdownJVM()

Déplacer la position de la page dans le dessin Visio

Aspose.Diagram for Python via Java API can move page position in the Visio drawing. The moveTo method, exposed by the Page class, helps developers to move the page position.

Déplacer la position de la page Exemple de programmation

Le membre MoveTo prend l’index de la page cible comme paramètre pour déplacer la position de la page dans le dessin Visio :

# import diagram

diagram = Diagram(dataDir + "Drawing1.vsdx")

newPage = Page(1)

# move page in the diagram

newPage.moveTo(2)

diagram.save(dataDir + "Drawing1.vsdx", SaveFileFormat.VSDX)