MS Visio é um aplicativo popular que permite criar uma ampla variedade de diagramas, como fluxogramas, diagramas de fluxo de dados, modelos de processos de negócios e etc. VSDX é o formato de arquivo que o MS Visio usa para armazenar os diagramas. Para automatizar a manipulação do VSDX, este artigo fornece um tutorial básico de como criar diagramas do Visio do zero em C#. Além disso, aborda como inserir páginas, formas e texto nos diagramas VSDX a partir de aplicativos .NET.

API C# Visio - Download grátis

Aspose.Diagram for .NET é uma API rica em recursos que permite criar, editar, converter e processar diagramas do MS Visio a partir de seus aplicativos .NET. A API facilita a manipulação dos diagramas VSDX com propriedades e métodos fáceis de usar. Você pode baixar DLL da API ou instalá-la em seus aplicativos .NET usando NuGet.

Install-Package Aspose.Diagram

Criar diagrama VSDX do Visio usando C#

Em primeiro lugar, vamos criar um diagrama VSDX vazio do zero. A seguir estão os passos para fazê-lo:

O exemplo de código a seguir mostra como criar o diagrama VSDX do Visio em C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_Diagrams();

// Crie um diretório se ele ainda não estiver presente.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);
// Inicializar um novo Visio
Diagram diagram = new Diagram();
dataDir = dataDir + "CreateDiagram_out.vsdx";
// Salvar no formato VSDX
diagram.Save(dataDir, SaveFileFormat.VSDX);

Adicionar mestre ao diagrama do Visio em C#

Master é usado para adicionar o estêncil que contém uma coleção de formas a serem usadas em diagramas. Se você quiser adicionar o mestre, precisará de um arquivo de estêncil VSS e um ID do mestre. A seguir estão as etapas para adicionar um mestre ao diagrama do Visio usando Aspose.Diagram.

O exemplo de código a seguir mostra como adicionar um mestre ao diagrama do Visio usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_Master();

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

// Carregar estêncil em um fluxo
string templateFileName = dataDir + "NetApp-FAS-series.vss";
Stream stream = new FileStream(templateFileName, FileMode.Open);

// Adicionar mestre com caminho de arquivo de estêncil e id mestre
string masterName = "FAS80xx rear empty";
diagram.AddMaster(templateFileName, 2);

// Adicionar mestre com caminho de arquivo de estêncil e nome mestre
diagram.AddMaster(templateFileName, masterName);

// Adicionar mestre com fluxo de arquivo de estêncil e ID mestre
diagram.AddMaster(stream, 2);

// Adiciona mestre ao diagrama do diagrama de origem
Diagram src = new Diagram(templateFileName);
diagram.AddMaster(src, masterName);

// Adicionar mestre com fluxo de arquivo de estêncil e ID mestre
diagram.AddMaster(stream, masterName);

// Adiciona forma com PinX e PinY definidos.
diagram.AddShape(2.0, 2.0, masterName, 0);
diagram.AddShape(6.0, 6.0, masterName, 0);

// Adiciona forma com PinX,PinY,Width e Height definidos.
diagram.AddShape(7.0, 3.0, 1.5, 1.5, masterName, 0);

Para mais detalhes, visite trabalhar com o mestre.

Inserir páginas em um diagrama do Visio em C#

Os diagramas do MS Visio consistem em uma ou mais páginas e cada página contém os diagramas. Portanto, antes de adicionar uma forma, você precisa adicionar uma página usando as etapas a seguir.

O exemplo de código a seguir mostra como adicionar uma página no diagrama VSDX do Visio usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_VisioPages();

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

// Calcula o id máximo da 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;
}

// Definir código máximo da página
int MaxPageId = max;

// Inicializar um novo objeto de página
Page newPage = new Page();
// Nome do conjunto
newPage.Name = "new page";
// Definir ID da página
newPage.ID = MaxPageId + 1;

// Ou tente o construtor Page
// Página novaPágina = nova Página(MaxPageId + 1);

// Adicionar uma nova página em branco
diagram.Pages.Add(newPage);

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

Para mais detalhes, visite trabalhar com páginas.

Criar uma forma no diagrama do Visio usando C#

As formas são os blocos de construção dos diagramas do Visio. O MS Visio oferece suporte a uma ampla variedade de formas para criar diagramas em vários domínios. As etapas a seguir mostram como inserir uma forma no diagrama do Visio.

O exemplo de código a seguir mostra como adicionar uma forma no diagrama do Visio usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_Shapes();

// Carregar um diagrama
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");
// Obter página por nome
Page page = diagram.Pages.GetPage("Page-2");

// Adicionar mestre com caminho de arquivo de estêncil e nome mestre
string masterName = "Rectangle";
diagram.AddMaster(dataDir + "Basic Shapes.vss", masterName);
            
// A indexação da página começa em 0
int PageIndex = 1;
double width = 2, height = 2, pinX = 4.25, pinY = 4.5;
// Adicionar uma nova forma de retângulo
long rectangleId = diagram.AddShape(pinX, pinY, width, height, masterName, PageIndex);
            
// Definir propriedades da 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 mais detalhes, visite trabalhar com formas.

Adicionar uma forma de texto na página do Visio em C#

Em vários casos, você também precisa adicionar texto aos diagramas do Visio. Para isso, você pode seguir os passos abaixo.

O exemplo de código a seguir mostra como adicionar texto em um diagrama VSDX usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_ShapeText();

// Criar um novo diagrama
Diagram diagram = new Diagram();
// Definir parâmetros e adicionar texto a uma página do Visio
double PinX = 1, PinY = 1, Width = 1, Height = 1;                  
diagram.Pages[0].AddText(PinX, PinY, Width, Height, "Test text");
// Salvar diagrama 
diagram.Save(dataDir + "InsertTextShape_out.vsdx", SaveFileFormat.VSDX);

Para mais detalhes, visite trabalhar com texto.

Conclusão

Neste post, você aprendeu alguns recursos básicos do Aspose.Diagram for .NET para criar diagramas VSDX do Visio do zero. Os exemplos de código mostraram como adicionar mestres, páginas, formas e texto em diagramas VSDX usando C#. Você pode explorar mais sobre a API usando a documentação.

Veja também