Agregar, recuperar, copiar y leer datos de forma Visio

Agregar una nueva forma en Visio

Aspose.Diagram for .NET le permite manipular Microsoft Visio diagramas de diferentes maneras. Una de las cosas que puede hacer es agregar nuevas formas a los diagramas. Aspose.Diagram for .NET le permite agregar una nueva forma a un diagram. La forma agregada también se puede personalizar usando Aspose.Diagram for .NET.

Este tema describe cómo agregar una nueva forma de rectángulo a un diagram.

Use Aspose.Diagram for .NET API para crear nuevas formas y luego agregue estas formas a la colección de formas de diagram.

Para agregar una nueva forma:

  1. Encuentra la página - Cada Visio diagram contiene una colección de páginas. Los desarrolladores pueden recuperar la página por ID o nombre de página y almacenar la página requerida en elPáginaobjeto de clase.
  2. Agregue el maestro requerido de una forma - Cada Visio diagram contiene una colección de maestros. Los desarrolladores pueden agregar un maestro (por ID o nombre) del archivo de plantilla existente (por ruta directa o flujo de archivo).
  3. Añadir forma en el Visio diagram - Los desarrolladores pueden colocar una nueva forma en el Visio diagram por índice de página (a partir de 0), nombre maestro, PinX, PinY, alto (opcional) y ancho (opcional).
  4. Establecer propiedades de forma - El método AddShape de la clase Diagram devuelve el ID de la forma. Los desarrolladores pueden recuperar la forma de un Visio diagram usando este ID y luego establecer sus propiedades, por ejemplo, color, posición, alineación y texto.

La entrada diagram

todo:imagen_alternativa_texto

El diagram con una forma añadida

todo:imagen_alternativa_texto

Agregar muestra de programación

El fragmento de código a continuación muestra cómo hacer cada paso.

Recuperación de información de forma

Trabajar con diagramasexplica cómo crear diagramas, agregar formas y conectores, y luego cómo recuperar información sobre diagram elementos comopaginas, maestros, conectores yfuentes. Este artículo analiza cómo recuperar información sobre formas en un diagram.

Cada forma en un diagram tiene una identificación y un nombre. El ID es importante al programar con Visio: es el método principal para acceder a una forma. Cada forma también retiene información sobre de qué maestro (plantilla) está hecha.

AForma es un objeto en un dibujo Visio. La propiedad Shapes, expuesta por la clase Page, admite una colección de objetos Aspose.Diagram.Shape. La propiedad Shapes se puede utilizar para recuperar información sobre una forma.

En la ventana de la consola a continuación, por ejemplo, puede ver la salida de información para un diagram que contenía cuatro formas: dos terminadores, un proceso y un conector dinámico. Cada uno tiene una identificación única, así como el nombre de la forma maestra (plantilla).

Una ventana de consola que muestra información de forma
todo:imagen_alternativa_texto
Para recuperar la información de la página Visio:
  1. Carga un diagram.
  2. Configura un bucle foreach para recorrer todas las formas en el diagram.
  3. Muestra información de forma.

Recuperar muestra de programación

El siguiente fragmento de código recupera la información de la forma de un Visio diagram.

Copie formas de un Visio existente

Aspose.Diagram for .NET API permite a los desarrolladores copiar formas de la página de origen Visio a la nueva página Visio diagram. También admite la copia de formas de grupos. Este artículo describe cómo copiar todas las formas desde la página fuente diagram.

Para copiar formas, los desarrolladores también deben copiar los temas de origen PageSheet y origen Visio para conservar el estilo de relleno de forma y otras propiedades de formato.

Este ejemplo funciona de la siguiente manera:

  1. Cargue una fuente Visio.
  2. Inicializar un nuevo Visio
  3. Agregue maestros y temas de la fuente Visio.
  4. Obtenga la página de la fuente Visio.
  5. Copie su hoja de página en la nueva página Visio.
  6. Iterar a través de las formas de la página fuente Visio.
  7. Establezca su nueva identificación y agréguela a la nueva página Visio.
  8. Guarde el nuevo Visio en el almacenamiento local.

Ejemplo de programación de copias

Copie una forma Visio en otra instancia de forma

El método Copy de la clase Shape toma una instancia de forma para clonar.

 // import diagram

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

Shape newShape = new Shape();

// copy diagram

newShape.Copy(diagram.Pages[0].Shapes[0]);

newShape.ID = 3;

newShape.XForm.PinX.Value = 1;

newShape.XForm.PinY.Value = 1;

Lectura de datos de forma Visio

La colección Props expuesta por elForma la clase apoya laAspose.Diagram.Prop objeto. La propiedad se puede utilizar para leer los datos de una forma (propiedades personalizadas).

Leer todas las propiedades de forma

Para identificar propiedades personalizadas en Microsoft Visio:

  1. En un diagram, haga clic derecho en una forma.
  2. SeleccioneDatos , despuésDatos de forma del menú. Todas las propiedades existentes se enumeran en el cuadro de diálogo.
Los datos de una forma, como se ve en Microsoft Visio. ** 
todo:imagen_alternativa_texto
Una ventana de consola que muestra la salida de datos de forma. ** 
todo:imagen_alternativa_texto

Leer muestra de programación

Los fragmentos de código a continuación leen datos de formas (propiedades personalizadas).

Leer una propiedad de forma por nombre

El fragmento de código siguiente lee una propiedad de forma por nombre (propiedad personalizada).

Ejemplo de programación de lectura por nombre

Read InheritAccesorios de forma

El fragmento de código a continuación lee InheritProps de una forma.

Agregar y conectar Visio Formas

Aspose.Diagram for .NET le permite agregar formas personalizadas y conectarlas endiagramas que creas.

Agregar y conectar formas

El código de los ejemplos siguientes muestra cómo:

  1. Crea un diagram.
  2. Agregue y personalice formas (rectángulo, estrella, hexágono).
  3. Conecta las formas de estrella y hexágono al rectángulo.
  4. Guarda el diagram.

Ejemplo de programación de adición y conexión de formas

Usar índices de conexión para conectar formas

Aspose.Diagram for .NET API ya permite a los desarrolladores agregar nuevos puntos de conexión en la forma, y los desarrolladores ahora pueden conectar formas mediante índices de conexión.

Usar índices de conexión para conectar formas

El miembro ConnectShapesViaConnectorIndex expuesto por elPáginaLa clase se puede usar para conectar formas usando índices de conexión. El siguiente código muestra cómo conectar formas:

  1. Inicializar un nuevo dibujo.
  2. Coloca cuatro formas rectangulares.
  3. Agregue dos puntos de conexión adicionales, de modo que haya tres puntos de conexión en la línea del borde inferior
  4. Conecte la primera forma de cada conexión inferior a otras tres formas rectangulares desde la parte superior con conectores dinámicos
  5. Guardar dibujo

Use índices de conexión para conectar formas Ejemplo de programación

Use el siguiente código en su aplicación .NET para conectar formas usando índices de conexión con Aspose.Diagram for .NET API.

C#

 // initialize a new drawing

Diagram diagram = new Diagram();

// get page by index

Aspose.Diagram.Page page = diagram.Pages[0];

// add masters

string connectorMaster = "Dynamic connector", rectangle = "Rectangle";

int pageNumber = 0;

double width = 2, height = 2, pinX = 4.25, pinY = 9.5;

diagram.AddMaster(@"C:\temp\Basic Shapes.vss", rectangle);

diagram.AddMaster(@"C:\temp\Basic Shapes.vss", connectorMaster);

// add shapes

long shape1_ID = diagram.AddShape(4.5, 7, rectangle, pageNumber);

long shape2_ID = diagram.AddShape(2.25, 4.5, rectangle, pageNumber);

long shape3_ID = diagram.AddShape(4.5, 4.5, rectangle, pageNumber);

long shape4_ID = diagram.AddShape(6.75, 4.5, rectangle, pageNumber);

// get shapes by ID

Aspose.Diagram.Shape shape1 = page.Shapes.GetShape(shape1_ID);

Aspose.Diagram.Shape shape2 = page.Shapes.GetShape(shape2_ID);

Aspose.Diagram.Shape shape3 = page.Shapes.GetShape(shape3_ID);

Aspose.Diagram.Shape shape4 = page.Shapes.GetShape(shape4_ID);

// add two more connection points

Connection connection1 = new Connection();

connection1.X.Ufe.F = "Width*0.33";

connection1.Y.Ufe.F = "Height*0";

Connection connection3 = new Connection();

connection3.X.Ufe.F = "Width*0.66";

connection3.Y.Ufe.F = "Height*0";

shape1.Connections.Add(connection1);

shape1.Connections.Add(connection3);



// add connector shapes

Aspose.Diagram.Shape connector1 = new Aspose.Diagram.Shape();

Aspose.Diagram.Shape connector2 = new Aspose.Diagram.Shape();

Aspose.Diagram.Shape connector3 = new Aspose.Diagram.Shape();

long connecter1Id = diagram.AddShape(connector1, connectorMaster, 0);

long connecter2Id = diagram.AddShape(connector2, connectorMaster, 0);

long connecter3Id = diagram.AddShape(connector3, connectorMaster, 0);

// connect shapes by index of conneecting points

page.ConnectShapesViaConnectorIndex(shape1.ID, 6, shape2.ID, 3, connecter1Id);

page.ConnectShapesViaConnectorIndex(shape1.ID, 1, shape3.ID, 3, connecter2Id);

page.ConnectShapesViaConnectorIndex(shape1.ID, 7, shape4.ID, 3, connecter3Id);

// save drawing

diagram.Save(@"C:\temp\Drawing1_out.vsdx", SaveFileFormat.VSDX);

Recuperar la forma principal de una subforma

Aspose.Diagram for .NET permite a los desarrolladores recuperar la forma principal de una subforma.

Obtener la forma principal

losFormaLa clase ofrece la propiedad ParentShape para recuperar la forma principal.

Obtenga la muestra de programación de formas principales