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);

更多詳情,請訪問【與大師一起工作】12

在 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 的更多信息。

也可以看看