MS Visio 是一种流行的应用程序,可让您创建范围广泛的图表,例如流程图、数据流程图、业务流程模型等。VSDX 是 MS Visio 用于存储的文件格式图表。为了自动化 VSDX 操作,本文为您提供了如何在 C# 中从头开始创建 Visio 图表的基本教程。此外,它还介绍了如何从 .NET 应用程序中在 VSDX 图表中插入页面、形状和文本。
- C# Visio API - 免费下载
- 使用 C# 创建 MS Visio 图表
- 在 C# 中将 Master 添加到 VSDX 图表
- 在 C# 中的 Visio 图表中插入页面
- 在 C# 中的 Visio 图表中创建形状
- 在 C# 中的 Visio 页面中添加文本形状
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 图表。以下是执行此操作的步骤:
- 创建 Diagram 类的实例。
- 使用 Diagram.Save(Sring fileName, SaveFileFormat.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 图表的步骤。
- 使用 Diagram 类创建新图表或加载现有图表。
- 使用 Diagram.AddMaster(String fileName, Int masterID) 方法添加主控。
- 使用 Diagram.AddShape(Double, Double, String, Int) 方法将形状从母版添加到图表。
- 使用 Diagram.Save(Sring fileName, SaveFileFormat.VSDX) 方法保存图表。
下面的代码示例演示如何使用 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 图表由一页或多页组成,每一页都包含图表。因此,在添加形状之前,您需要使用以下步骤添加页面。
- 使用 Diagram 类创建新图表或加载现有图表。
- 使用 Diagram.Pages.Count 属性检查图表是否已包含页面。
- 如果是,请使用 Diagram.Pages[index].ID 属性获取最后一页的 ID。
- 使用 Page 类创建一个新页面并设置其名称和 ID。
- 使用 Diagram.Pages.Add(Page) 方法将页面添加到图表。
- 使用 Diagram.Save(Sring fileName, SaveFileFormat.VSDX) 方法保存 VSDX 图。
以下代码示例演示如何使用 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 图表中插入形状。
- 使用 Diagram 类创建新图表或加载现有图表。
- 创建一个 Page 或在 Page 对象中获取所需的页面。
- 使用 Diagram.AddMaster(String fileName, Int masterID) 方法将 master 添加到图表中。
- 使用 Diagram.AddShape(pinX, pinY, width, height, masterName, PageIndex) 方法添加一个新的矩形。
- 存储 Diagram.AddShape() 方法返回的形状 ID。
- 使用 Page.Shapes.GetShape(long ID) 方法在 Shape 对象中检索新添加的形状。
- 设置形状的属性,例如文本、颜色等。
- 使用 Diagram.Save(Sring fileName, SaveFileFormat.VSDX) 方法保存 VSDX 图。
以下代码示例演示如何使用 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 图表添加文本。为此,您可以按照以下步骤操作。
- 使用 Diagram 类创建新图表或加载现有图表。
- 使用 Diagram.Pages[0].AddText(PinX, PinY, Width, Height, “Test text”) 方法将文本添加到特定页面。
- 使用 Diagram.Save(Sring fileName, SaveFileFormat.VSDX) 方法保存 VSDX 图。
以下代码示例展示了如何使用 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 的更多信息。