MS Visio — популярное приложение, которое позволяет создавать широкий спектр диаграмм, таких как блок-схемы, диаграммы потоков данных, модели бизнес-процессов и т. д. VSDX — это формат файла, который MS Visio использует для хранения диаграммы. Чтобы автоматизировать манипуляции с VSDX, в этой статье представлено базовое руководство по созданию диаграмм Visio с нуля на C#. Кроме того, в нем рассказывается, как вставлять страницы, фигуры и текст в диаграммы VSDX из приложений .NET.

C# Visio API — скачать бесплатно

Aspose.Diagram for .NET — это многофункциональный API, который позволяет создавать, редактировать, преобразовывать и обрабатывать диаграммы MS Visio из приложений .NET. API упрощает работу с диаграммами VSDX с помощью простых в использовании свойств и методов. Вы можете либо загрузить библиотеку DLL API, либо установить ее в свои приложения .NET с помощью NuGet.

Install-Package Aspose.Diagram

Создание диаграммы Visio VSDX с помощью C#

Прежде всего, давайте создадим с нуля пустую диаграмму VSDX. Ниже приведены шаги для этого:

В следующем примере кода показано, как создать схему Visio VSDX на C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-diagram/Aspose.Diagram-for-.NET.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Diagrams();

// Создайте каталог, если он еще не существует.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);
// Инициализировать новый Visio
Diagram diagram = new Diagram();
dataDir = dataDir + "CreateDiagram_out.vsdx";
// Сохранить в формате VSDX
diagram.Save(dataDir, SaveFileFormat.VSDX);

Добавить мастер в диаграмму Visio на C#

Мастер используется для добавления трафарета, который содержит набор фигур для использования в диаграммах. Если вы хотите добавить мастер, вам потребуется файл трафарета VSS и идентификатор мастера. Ниже приведены шаги по добавлению мастера на диаграмму Visio с помощью Aspose.Diagram.

В следующем примере кода показано, как добавить мастер на схему Visio с помощью C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-diagram/Aspose.Diagram-for-.NET.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Master();

// Диаграмма нагрузки
Diagram diagram = new Diagram();

// Загрузить трафарет в поток
string templateFileName = dataDir + "NetApp-FAS-series.vss";
Stream stream = new FileStream(templateFileName, FileMode.Open);

// Добавить мастер с путем к файлу трафарета и идентификатором мастера
string masterName = "FAS80xx rear empty";
diagram.AddMaster(templateFileName, 2);

// Добавить мастер с путем к файлу трафарета и именем мастера
diagram.AddMaster(templateFileName, masterName);

// Добавить мастер с потоком файла трафарета и идентификатором мастера
diagram.AddMaster(stream, 2);

// Добавляет мастер к диаграмме из исходной диаграммы
Diagram src = new Diagram(templateFileName);
diagram.AddMaster(src, masterName);

// Добавить мастер с потоком файла трафарета и идентификатором мастера
diagram.AddMaster(stream, masterName);

// Добавляет форму с определенными PinX и PinY.
diagram.AddShape(2.0, 2.0, masterName, 0);
diagram.AddShape(6.0, 6.0, masterName, 0);

// Добавляет форму с определенными PinX, PinY, шириной и высотой.
diagram.AddShape(7.0, 3.0, 1.5, 1.5, masterName, 0);

Для получения более подробной информации, пожалуйста, посетите working with master.

Вставка страниц в схему Visio на C#

Диаграммы MS Visio состоят из одной или нескольких страниц, и каждая страница содержит диаграммы. Поэтому перед добавлением фигуры необходимо добавить страницу, выполнив следующие действия.

  • Создайте новую диаграмму или загрузите существующую с помощью класса Diagram.
  • Проверьте, содержит ли диаграмма уже страницу, используя свойство Diagram.Pages.Count.
  • Если это так, получите идентификатор последней страницы, используя свойство Diagram.Pages[index].ID.
  • Создайте новую страницу с помощью класса Page и задайте ее имя и идентификатор.
  • Добавьте страницу на диаграмму с помощью метода Diagram.Pages.Add(Page).
  • Сохраните диаграмму VSDX, используя метод Diagram.Save(Sring fileName, SaveFileFormat.VSDX).

В следующем примере кода показано, как добавить страницу на схему Visio VSDX с помощью C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-diagram/Aspose.Diagram-for-.NET.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_VisioPages();

// Диаграмма нагрузки
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");

// Он вычисляет максимальный идентификатор страницы
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;
}

// Установить максимальный идентификатор страницы
int MaxPageId = max;

// Инициализировать новый объект страницы
Page newPage = new Page();
// Имя набора
newPage.Name = "new page";
// Установить идентификатор страницы
newPage.ID = MaxPageId + 1;

// Или попробуйте конструктор страниц
// Страница newPage = новая страница (MaxPageId + 1);

// Добавить новую пустую страницу
diagram.Pages.Add(newPage);

// Сохранить диаграмму
diagram.Save(dataDir + "InsertBlankPage_out.vsdx", SaveFileFormat.VSDX);

Подробнее читайте на странице работа со страницами.

Создание фигуры в диаграмме Visio с помощью C#

Фигуры — это строительные блоки схем Visio. MS Visio поддерживает широкий спектр форм для создания диаграмм в различных областях. Следующие шаги показывают, как вставить фигуру в схему Visio.

  • Создайте новую диаграмму или загрузите существующую, используя класс Diagram.
  • Создайте страницу или получите нужную страницу в объекте Page.
  • Добавьте master на диаграмму, используя метод Diagram.AddMaster(String fileName, Int masterID).
  • Добавьте новую прямоугольную форму, используя метод Diagram.AddShape(pinX, pinY, width, height, masterName, PageIndex).
  • Сохраните идентификатор формы, возвращенный методом Diagram.AddShape().
  • Получите вновь добавленную фигуру в объекте Shape с помощью метода Page.Shapes.GetShape(long ID).
  • Установите свойства фигуры, такие как текст, цвет и т. д.
  • Сохраните диаграмму VSDX, используя метод Diagram.Save(Sring fileName, SaveFileFormat.VSDX).

В следующем примере кода показано, как добавить фигуру на схему Visio с помощью C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-diagram/Aspose.Diagram-for-.NET.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_Shapes();

// Загрузить диаграмму
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");
// Получить страницу по названию
Page page = diagram.Pages.GetPage("Page-2");

// Добавить мастер с путем к файлу трафарета и именем мастера
string masterName = "Rectangle";
diagram.AddMaster(dataDir + "Basic Shapes.vss", masterName);
            
// Индексация страницы начинается с 0
int PageIndex = 1;
double width = 2, height = 2, pinX = 4.25, pinY = 4.5;
// Добавьте новую форму прямоугольника
long rectangleId = diagram.AddShape(pinX, pinY, width, height, masterName, PageIndex);
            
// Установить свойства формы 
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.");

Чтобы узнать больше, посетите работа с фигурами.

Добавление текстовой фигуры на страницу Visio в C#

В некоторых случаях вам также необходимо добавить текст к диаграммам Visio. Для этого вы можете выполнить следующие шаги.

В следующем примере кода показано, как добавить текст на схему VSDX с помощью C#.

// Полные примеры и файлы данных см. на странице https://github.com/aspose-diagram/Aspose.Diagram-for-.NET.
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_ShapeText();

// Создать новую диаграмму
Diagram diagram = new Diagram();
// Установка параметров и добавление текста на страницу Visio
double PinX = 1, PinY = 1, Width = 1, Height = 1;                  
diagram.Pages[0].AddText(PinX, PinY, Width, Height, "Test text");
// Сохранить диаграмму 
diagram.Save(dataDir + "InsertTextShape_out.vsdx", SaveFileFormat.VSDX);

Подробнее читайте на странице работа с текстом.

Вывод

В этом посте вы узнали о некоторых основных функциях Aspose.Diagram для .NET для создания диаграмм Visio VSDX с нуля. В примерах кода показано, как добавлять образцы, страницы, фигуры и текст в диаграммы VSDX с помощью C#. Вы можете узнать больше об API, используя документацию.

Смотрите также