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);
更多詳情,請訪問【與大師一起工作】12。
在 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 的更多信息。