MS Visio es una aplicación popular que le permite crear una amplia gama de diagramas, como diagramas de flujo, diagramas de flujo de datos, modelos de procesos comerciales, etc. VSDX es el formato de archivo que usa MS Visio para almacenar los diagramas Para automatizar la manipulación de VSDX, este artículo le proporciona un tutorial básico sobre cómo crear diagramas de Visio desde cero en C#. Además, cubre cómo insertar páginas, formas y texto en los diagramas VSDX desde aplicaciones .NET.

C# API de Visio - Descarga gratuita

Aspose.Diagram for .NET es una API rica en funciones que le permite crear, editar, convertir y procesar diagramas de MS Visio desde sus aplicaciones .NET. La API le facilita la manipulación de los diagramas VSDX con propiedades y métodos fáciles de usar. Puede descargar la DLL de la API o instalarla dentro de sus aplicaciones .NET usando NuGet.

Install-Package Aspose.Diagram

Crear diagrama Visio VSDX usando C#

En primer lugar, creemos un diagrama VSDX vacío desde cero. Los siguientes son los pasos para hacerlo:

El siguiente ejemplo de código muestra cómo crear un diagrama Visio VSDX en C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Diagrams();

// Crear directorio si aún no está presente.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);
// Inicializar un nuevo Visio
Diagram diagram = new Diagram();
dataDir = dataDir + "CreateDiagram_out.vsdx";
// Guardar en formato VSDX
diagram.Save(dataDir, SaveFileFormat.VSDX);

Agregar maestro al diagrama de Visio en C#

Maestro se usa para agregar la plantilla que contiene una colección de formas para usar en diagramas. Si desea agregar el maestro, necesita un archivo de plantilla VSS y una ID maestra. Los siguientes son los pasos para agregar un maestro al diagrama de Visio usando Aspose.Diagram.

El siguiente ejemplo de código muestra cómo agregar un maestro al diagrama de Visio mediante C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Master();

// Diagrama de carga
Diagram diagram = new Diagram();

// Cargar plantilla en un flujo
string templateFileName = dataDir + "NetApp-FAS-series.vss";
Stream stream = new FileStream(templateFileName, FileMode.Open);

// Agregue maestro con la ruta del archivo de plantilla y la identificación maestra
string masterName = "FAS80xx rear empty";
diagram.AddMaster(templateFileName, 2);

// Agregue el maestro con la ruta del archivo de plantilla y el nombre del maestro
diagram.AddMaster(templateFileName, masterName);

// Agregue maestro con flujo de archivo de plantilla e identificación maestra
diagram.AddMaster(stream, 2);

// Agrega maestro al diagrama desde el diagrama de origen
Diagram src = new Diagram(templateFileName);
diagram.AddMaster(src, masterName);

// Agregue maestro con flujo de archivo de plantilla e identificación maestra
diagram.AddMaster(stream, masterName);

// Agrega forma con PinX y PinY definidos.
diagram.AddShape(2.0, 2.0, masterName, 0);
diagram.AddShape(6.0, 6.0, masterName, 0);

// Agrega forma con PinX, PinY, ancho y alto definidos.
diagram.AddShape(7.0, 3.0, 1.5, 1.5, masterName, 0);

Para obtener más detalles, visite trabajando con el maestro.

Insertar páginas en un diagrama de Visio en C#

Los diagramas de MS Visio constan de una o más páginas y cada página contiene los diagramas. Por lo tanto, antes de agregar una forma, debe agregar una página siguiendo los siguientes pasos.

El siguiente ejemplo de código muestra cómo agregar una página en el diagrama de Visio VSDX mediante C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_VisioPages();

// Diagrama de carga
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");

// Calcula la identificación máxima de la página
int max = 0;
if (diagram.Pages.Count != 0)
    max = diagram.Pages[0].ID;

for (int i = 1; i < diagram.Pages.Count; i++)
{
    if (max < diagram.Pages[i].ID)
        max = diagram.Pages[i].ID;
}

// Establecer ID de página máxima
int MaxPageId = max;

// Inicializar un nuevo objeto de página
Page newPage = new Page();
// Escoger un nombre
newPage.Name = "new page";
// Establecer ID de página
newPage.ID = MaxPageId + 1;

// O prueba el constructor de página
// Página newPage = nueva página (MaxPageId + 1);

// Agregar una nueva página en blanco
diagram.Pages.Add(newPage);

// Guardar diagrama
diagram.Save(dataDir + "InsertBlankPage_out.vsdx", SaveFileFormat.VSDX);

Para obtener más detalles, visite trabajar con páginas.

Crear una forma en el diagrama de Visio usando C#

Las formas son los componentes básicos de los diagramas de Visio. MS Visio admite una amplia gama de formas para crear diagramas en varios dominios. Los siguientes pasos muestran cómo insertar una forma en Visio Diagram.

El siguiente ejemplo de código muestra cómo agregar una forma en el diagrama de Visio mediante C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_Shapes();

// Cargar un diagrama
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");
// Obtener página por nombre
Page page = diagram.Pages.GetPage("Page-2");

// Agregue el maestro con la ruta del archivo de plantilla y el nombre del maestro
string masterName = "Rectangle";
diagram.AddMaster(dataDir + "Basic Shapes.vss", masterName);
            
// La indexación de páginas comienza desde 0
int PageIndex = 1;
double width = 2, height = 2, pinX = 4.25, pinY = 4.5;
// Agregar una nueva forma de rectángulo
long rectangleId = diagram.AddShape(pinX, pinY, width, height, masterName, PageIndex);
            
// Establecer propiedades de forma 
Shape rectangle = page.Shapes.GetShape(rectangleId);
rectangle.XForm.PinX.Value = 5;
rectangle.XForm.PinY.Value = 5;
rectangle.Type = TypeValue.Shape;
rectangle.Text.Value.Add(new Txt("Aspose Diagram"));
rectangle.TextStyle = diagram.StyleSheets[3];
rectangle.Line.LineColor.Value = "#ff0000";
rectangle.Line.LineWeight.Value = 0.03;
rectangle.Line.Rounding.Value = 0.1;
rectangle.Fill.FillBkgnd.Value = "#ff00ff";
rectangle.Fill.FillForegnd.Value = "#ebf8df";

diagram.Save(dataDir + "AddShape_out.vsdx", SaveFileFormat.VSDX);
Console.WriteLine("Shape has been added.");

Para obtener más detalles, visite trabajar con formas.

Agregar una forma de texto en la página de Visio en C#

En varios casos, también debe agregar texto a los diagramas de Visio. Para esto, puede seguir los pasos a continuación.

El siguiente ejemplo de código muestra cómo agregar texto en un diagrama VSDX mediante C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_ShapeText();

// Crear un nuevo diagrama
Diagram diagram = new Diagram();
// Establecer parámetros y agregar texto a una página de Visio
double PinX = 1, PinY = 1, Width = 1, Height = 1;                  
diagram.Pages[0].AddText(PinX, PinY, Width, Height, "Test text");
// Guardar diagrama 
diagram.Save(dataDir + "InsertTextShape_out.vsdx", SaveFileFormat.VSDX);

Para obtener más detalles, visite trabajando con texto.

Conclusión

En esta publicación, ha aprendido algunas características básicas de Aspose.Diagram for .NET para crear diagramas Visio VSDX desde cero. Los ejemplos de código han mostrado cómo agregar maestros, páginas, formas y texto en diagramas VSDX usando C#. Puede explorar más sobre la API usando la documentación.

Ver también