MS Visio 是一种流行的应用程序,可让您创建范围广泛的图表,例如流程图、数据流程图、业务流程模型等。VSDX 是 MS Visio 用于存储的文件格式图表。为了自动化 VSDX 操作,本文为您提供了如何在 C# 中从头开始创建 Visio 图表的基本教程。此外,它还介绍了如何从 .NET 应用程序中在 VSDX 图表中插入页面、形状和文本。

C# Visio API - 免费下载

Aspose.Diagram for .NET 是一个功能丰富的 API,可让您在 .NET 应用程序中创建、编辑、转换和处理 MS Visio 图表。该 API 使您可以通过易于使用的属性和方法更轻松地操作 VSDX 图表。您可以 下载 API 的 DLL 或使用 NuGet 将其安装在您的 .NET 应用程序中。

Install-Package Aspose.Diagram

使用 C# 创建 Visio VSDX 图表

首先,让我们从头开始创建一个空的 VSDX 图表。以下是执行此操作的步骤:

以下代码示例展示了如何在 C# 中创建 Visio VSDX 图表。

// 完整的示例和数据文件,请访问 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);

在 C# 中将 Master 添加到 Visio 图表

Master 用于添加包含要在图表中使用的形状集合的模板。如果要添加主控,则需要一个 VSS 模板文件和主控 ID。以下是使用 Aspose.Diagram 将母版添加到 Visio 图表的步骤。

下面的代码示例演示如何使用 C# 将母版添加到 Visio 图表。

// 完整的示例和数据文件,请访问 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);

// 添加具有模板文件路径和主 ID 的主控
string masterName = "FAS80xx rear empty";
diagram.AddMaster(templateFileName, 2);

// 添加具有模板文件路径和主控名称的主控
diagram.AddMaster(templateFileName, masterName);

// 添加具有模板文件流和主 ID 的主控
diagram.AddMaster(stream, 2);

// 从源图中将主图添加到图
Diagram src = new Diagram(templateFileName);
diagram.AddMaster(src, masterName);

// 添加具有模板文件流和主 ID 的主控
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);

更多详情,请访问与大师合作

在 C# 中的 Visio 图表中插入页面

MS Visio 图表由一页或多页组成,每一页都包含图表。因此,在添加形状之前,您需要使用以下步骤添加页面。

以下代码示例演示如何使用 C# 在 Visio VSDX 图表中添加页面。

// 完整的示例和数据文件,请访问 https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_VisioPages();

// 负载图
Diagram diagram = new Diagram(dataDir + "Drawing1.vsdx");

// 它计算最大页面ID
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;
}

// 设置最大页面 ID
int MaxPageId = max;

// 初始化一个新的页面对象
Page newPage = new Page();
// 设置名称
newPage.Name = "new page";
// 设置页面ID
newPage.ID = MaxPageId + 1;

// 或者试试 Page 构造函数
// 页面 newPage = new Page(MaxPageId + 1);

// 添加一个新的空白页
diagram.Pages.Add(newPage);

// 保存图表
diagram.Save(dataDir + "InsertBlankPage_out.vsdx", SaveFileFormat.VSDX);

有关更多详细信息,请访问 使用页面

使用 C# 在 Visio 图表中创建形状

形状是 Visio 图表的构建块。 MS Visio 支持范围广泛的形状以在各种域中创建图表。以下步骤显示如何在 Visio 图表中插入形状。

以下代码示例演示如何使用 C# 在 Visio 图表中添加形状。

// 完整的示例和数据文件,请访问 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.");

有关更多详细信息,请访问 使用形状

在 C# 中的 Visio 页面中添加文本形状

在各种情况下,您还需要向 Visio 图表添加文本。为此,您可以按照以下步骤操作。

以下代码示例展示了如何使用 C# 在 VSDX 图表中添加文本。

// 完整的示例和数据文件,请访问 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 for .NET 的一些基本功能,可以从头开始创建 Visio VSDX 图表。代码示例展示了如何使用 C# 在 VSDX 图表中添加母版、页面、形状和文本。您可以使用 文档 探索有关 API 的更多信息。

也可以看看