Recuperar, obtener, copiar e insertar una página

Recuperación de información de la página

En Microsoft Visio, las páginas son páginas de primer plano o de fondo. Para obtener información de la página, por ejemplo, el ID de la página y el nombre de la página, primero establezca si una página es una página de fondo o de primer plano.

The Page object represents the drawing area of a foreground page or a background page. The Pages property exposed by the Diagram class supports a collection of Page objects. This property can be used to retrieve page information.

Use the Page.Background property to determine whether a page is a foreground or background page .

Muestra de programación de información de la página de recuperación

El siguiente fragmento de código recupera la información de las páginas de 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()

Obtenga la página Visio de 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.

Obtener un objeto de página Visio por ID

Este ejemplo funciona de la siguiente manera:

  1. Cree un objeto de la clase Diagram.
  2. Call the Diagram.Pages class' getPage method.

El siguiente ejemplo muestra cómo obtener un objeto de página por ID del dibujo Visio.

Obtener objeto de página por ejemplo de programación de ID

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()

Obtener un objeto de página Visio por nombre

Este ejemplo funciona de la siguiente manera:

  1. Cree un objeto de la clase Diagram.
  2. Llame al método GetPage de la clase Diagram.Pages.

Obtener objeto de página por nombre Ejemplo de programación

El siguiente ejemplo muestra cómo obtener un objeto de página por nombre del dibujo 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()

Copie una página Visio en otra 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.

Este ejemplo funciona de la siguiente manera:

  1. Cree un nuevo objeto de la clase Diagram.
  2. Cargue un Visio diagram existente en el objeto de clase Diagram.
  3. Agregue todos los maestros del cargado Visio diagram
  4. Obtenga el objeto de página del diagram cargado (que debe copiarse).
  5. Establezca el nombre y la identificación del objeto de la página.
  6. Eliminar página vacía del nuevo diagram (opcional).
  7. Call add method of the PageCollection class.
  8. Guarde el nuevo diagram en el almacenamiento de la computadora.

Copie una muestra de programación de página Visio

El siguiente ejemplo de código muestra cómo copiar un objeto de página Visio en otro dibujo 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()

Copie la página Visio a otra instancia de la página

The copy method of the Page class takes a page instance to clone.

# import diagram

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

newPage = Page()

# copy page

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

Insertar una página en blanco en un dibujo 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.

The add method, exposed by the Pages collection, allows developers to add a new blank page in the Visio diagram. The page ID should be assigned.

Insertar una muestra de programación de página en blanco

El siguiente fragmento de código inserta una página en blanco en el dibujo 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()

Mover la posición de la página en el dibujo 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.

Mover posición de página Ejemplo de programación

El miembro MoveTo toma el índice de la página de destino como parámetro para mover la posición de la página en el dibujo 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)