private void addShapes2() { //this.Application.Documents.Add(@"Basic Diagram.vst"); //<Snippet13> this.Application.Documents.Add(""); Visio.Documents visioDocs = this.Application.Documents; Visio.Document visioStencil = visioDocs.OpenEx("Basic Shapes.vss", (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked); Visio.Page visioPage = this.Application.ActivePage; Visio.Master visioRectMaster = visioStencil.Masters.get_ItemU(@"Rectangle"); Visio.Shape visioRectShape = visioPage.Drop(visioRectMaster, 4.25, 5.5); visioRectShape.Text = @"Rectangle text."; Visio.Master visioStarMaster = visioStencil.Masters.get_ItemU(@"Star 7"); Visio.Shape visioStarShape = visioPage.Drop(visioStarMaster, 2.0, 5.5); visioStarShape.Text = @"Star text."; Visio.Master visioHexagonMaster = visioStencil.Masters.get_ItemU(@"Hexagon"); Visio.Shape visioHexagonShape = visioPage.Drop(visioHexagonMaster, 7.0, 5.5); visioHexagonShape.Text = @"Hexagon text."; //</Snippet13> }
private void ThisAddIn_Startup(object sender, System.EventArgs e) { Visio.Application vsdApp = null; Visio.Document vsdDoc = null; //Create Visio Application Object vsdApp = Application; //Make Visio Application Invisible vsdApp.Visible = false; //Create a document object and load a diagram vsdDoc = vsdApp.Documents.Open("Add Shapes.vdx"); Visio.Documents visioDocs = this.Application.Documents; Visio.Document visioStencil = visioDocs.OpenEx("Basic Shapes.vss", (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked); Visio.Page visioPage = this.Application.ActivePage; Visio.Master visioRectMaster = visioStencil.Masters.get_ItemU(@"Rectangle"); Visio.Shape visioRectShape = visioPage.Drop(visioRectMaster, 4.25, 5.5); visioRectShape.Text = @"Rectangle text."; Visio.Master visioStarMaster = visioStencil.Masters.get_ItemU(@"Star 7"); Visio.Shape visioStarShape = visioPage.Drop(visioStarMaster, 2.0, 5.5); visioStarShape.Text = @"Star text."; Visio.Master visioHexagonMaster = visioStencil.Masters.get_ItemU(@"Hexagon"); Visio.Shape visioHexagonShape = visioPage.Drop(visioHexagonMaster, 7.0, 5.5); visioHexagonShape.Text = @"Hexagon text."; }
/// <summary> /// Процедура отображения ребер графа в документе Visio /// </summary> /// <param name="visioDocs">Документы Visio</param> /// <param name="visioPage">Текущая страница в Visio</param> private void PresentEdges(Visio.Documents visioDocs, Visio.Page visioPage) { Visio.Document visioConnectors = visioDocs.OpenEx("Basic Flowchart Shapes (US units).vss", (short)Visio.VisOpenSaveArgs.visOpenDocked); // Соединение вершин графа ребрами for (int i = 0; i < graph.VerticesEdges.Count(); ++i) { // Ребро var edge = graph.VerticesEdges.ElementAt(i); // Фигура соединидельной линии (коннектора) Visio.Shape connector = visioPage.Drop(visioConnectors.Masters.get_ItemU("Dynamic connector"), 0, 0); connector.get_Cells("ConLineRouteExt").FormulaU = "2"; connector.get_Cells("EndArrow").Formula = "=5"; // Стили ребра string label = edge.Attributes.ContainsKey("label") ? edge.Attributes["label"] : ""; string color = edge.Attributes.ContainsKey("color") ? edge.Attributes["color"] : "black"; string linestyle = edge.Attributes.ContainsKey("style") ? LineStyle(edge.Attributes["style"].ToLower()) : "1"; // Установка стилей для фигуры на странице Visio connector.Text = label; connector.get_CellsU("LineColor").FormulaU = VisioColor.ColorToRgb(color.ToLower()); connector.get_CellsU("LinePattern").FormulaU = linestyle; // Соединение вершин при помощи данного коннектора vertices[edge.Source].AutoConnect(vertices[edge.Destination], Visio.VisAutoConnectDir.visAutoConnectDirDown, connector); edges.Add(edge, vertices[edge.Source].FromConnects[vertices[edge.Source].FromConnects.Count].FromSheet); // Удаление коннектора-болванки connector.Delete(); } }
public VisioDrawer() { //These variable allow Visio to run quickly, and quietly //Defer Recalc needs to be set to 0 after processing is done VisApp = new Visio.InvisibleApp(); VisApp.UndoEnabled = false; VisApp.LiveDynamics = false; VisApp.AutoLayout = false; VisApp.DeferRecalc = -1; VisApp.DeferRelationshipRecalc = true; //Open the page holding the master collection so we can use it string executingSource = System.Reflection.Assembly.GetExecutingAssembly().Location; string executingFolder = System.IO.Path.GetDirectoryName(executingSource); //Add a new document - this becomes the active document //if we do not do this, we get throw an exception VisApp.Documents.Add(executingFolder + "\\Config\\VisioTemplate.vsd"); MastersDocuments = VisApp.Documents; MasterDoc = MastersDocuments.OpenEx(executingFolder + "\\Config\\Stencil.vss", (short)Visio.VisOpenSaveArgs.visOpenHidden); //Now get a masters collection to use Masters = MasterDoc.Masters; //now get the active document ActiveDoc = VisApp.ActiveDocument; connectionMaster = GetMaster(@"Arrow"); missingJobMaster = GetMaster(@"External Job"); fullShapeMaster = GetMaster(@"FullShapeTemplate"); containerMaster = GetMaster(@"Container"); }
public static void Run() { // ExStart:CreatingDiagramWithVSTO // The path to the documents directory. string dataDir = RunExamples.GetDataDir_KnowledgeBase(); Visio.Application vdxApp = null; Visio.Document vdxDoc = null; try { // Create Visio Application Object vdxApp = new Visio.Application(); // Make Visio Application Invisible vdxApp.Visible = false; // Create a new diagram vdxDoc = vdxApp.Documents.Add(""); // Load Visio Stencil Visio.Documents visioDocs = vdxApp.Documents; Visio.Document visioStencil = visioDocs.OpenEx("Basic Shapes.vss", (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenHidden); // Set active page Visio.Page visioPage = vdxApp.ActivePage; // Add a new rectangle shape Visio.Master visioRectMaster = visioStencil.Masters.get_ItemU(@"Rectangle"); Visio.Shape visioRectShape = visioPage.Drop(visioRectMaster, 4.25, 5.5); visioRectShape.Text = @"Rectangle text."; // Add a new star shape Visio.Master visioStarMaster = visioStencil.Masters.get_ItemU(@"Star 7"); Visio.Shape visioStarShape = visioPage.Drop(visioStarMaster, 2.0, 5.5); visioStarShape.Text = @"Star text."; // Add a new hexagon shape Visio.Master visioHexagonMaster = visioStencil.Masters.get_ItemU(@"Hexagon"); Visio.Shape visioHexagonShape = visioPage.Drop(visioHexagonMaster, 7.0, 5.5); visioHexagonShape.Text = @"Hexagon text."; // Save diagram as VDX vdxDoc.SaveAs(dataDir + "CreatingDiagramWithVSTO_Out.vdx"); } catch (Exception ex) { Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from http:// Www.aspose.com/purchase/default.aspx."); } // ExEnd:CreatingDiagramWithVSTO }
/// <summary> /// Процедура, сопоставляющая ключу-строке из допустимых фигур DOT мастер-фигуру Visio /// </summary> /// <param name="visioDocs"></param> /// <returns>Словарь string-Visio.Master</returns> private Dictionary <string, Visio.Master> GetMasterShapes(Visio.Documents visioDocs) { Visio.Document visioStencil1 = visioDocs.OpenEx("Basic Shapes.vss", (short)Visio.VisOpenSaveArgs.visOpenDocked); Visio.Document visioStencil2 = visioDocs.OpenEx("Audit Diagram Shapes.vss", (short)Visio.VisOpenSaveArgs.visOpenDocked); Dictionary <string, Visio.Master> result = new Dictionary <string, Visio.Master>(); result.Add("TRIANGLE", visioStencil1.Masters.get_ItemU(@"Triangle")); result.Add("SQUARE", visioStencil1.Masters.get_ItemU(@"Square")); result.Add("PENTAGON", visioStencil1.Masters.get_ItemU(@"Pentagon")); result.Add("HEXAGON", visioStencil1.Masters.get_ItemU(@"Hexagon")); result.Add("OCTAGON", visioStencil1.Masters.get_ItemU(@"Octagon")); result.Add("RECTANGLE", visioStencil1.Masters.get_ItemU(@"Rectangle")); result.Add("RECT", visioStencil1.Masters.get_ItemU(@"Rectangle")); result.Add("BOX", visioStencil1.Masters.get_ItemU(@"Rectangle")); result.Add("CIRCLE", visioStencil1.Masters.get_ItemU(@"Circle")); result.Add("ELLIPSE", visioStencil1.Masters.get_ItemU(@"Ellipse")); result.Add("OVAL", visioStencil1.Masters.get_ItemU(@"Ellipse")); result.Add("DIAMOND", visioStencil1.Masters.get_ItemU(@"Diamond")); result.Add("PARALLELOGRAM", visioStencil2.Masters.get_ItemU(@"I/O")); return(result); }
private static IVisio.Document TryOpenStencil(IVisio.Documents docs, string filename) { const short flags = (short)IVisio.VisOpenSaveArgs.visOpenRO | (short)IVisio.VisOpenSaveArgs.visOpenDocked; try { var doc = docs.OpenEx(filename, flags); return(doc); } catch (System.Runtime.InteropServices.COMException) { return(null); } }
/// <summary> /// Retrieves a stencil document if it's open, else open it according to /// the openArgument. /// </summary> /// <param name="documents">Documents collection to look for Stencil.</param> /// <param name="stencilName">Name of the stencil.</param> /// <param name="openArg">How to open the stencil.</param> /// <returns></returns> public static Visio.Document getStencil(Visio.Documents documents, string stencilName, Visio.VisOpenSaveArgs openArg) { // if stencil is already open, return reference to it Visio.Document stencil = null; try { stencil = documents[stencilName]; } catch { // Stencil isn't open, so open it string stencilPath = CaseTypes.stencilPath() + CaseTypes.OOSD_GENERAL_STENCIL; stencil = documents.OpenEx(stencilPath, (short)openArg); } return(stencil); }
private void ThisAddIn_Startup(object sender, System.EventArgs e) { Visio.Application vdxApp = null; Visio.Document vdxDoc = null; //Create Visio Application Object vdxApp = Application; //Make Visio Application Invisible vdxApp.Visible = false; //Create a new diagram vdxDoc = vdxApp.Documents.Add("Drawing.vsd"); //Load Visio Stencil Visio.Documents visioDocs = vdxApp.Documents; Visio.Document visioStencil = visioDocs.OpenEx("sample.vss", (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenHidden); //Set active page Visio.Page visioPage = vdxApp.ActivePage; //Add a new rectangle shape Visio.Master visioRectMaster = visioStencil.Masters.get_ItemU(@"Rectangle"); Visio.Shape visioRectShape = visioPage.Drop(visioRectMaster, 4.25, 5.5); visioRectShape.Text = @"Rectangle text."; //Add a new star shape Visio.Master visioStarMaster = visioStencil.Masters.get_ItemU(@"Star 7"); Visio.Shape visioStarShape = visioPage.Drop(visioStarMaster, 2.0, 5.5); visioStarShape.Text = @"Star text."; //Add a new hexagon shape Visio.Master visioHexagonMaster = visioStencil.Masters.get_ItemU(@"Hexagon"); Visio.Shape visioHexagonShape = visioPage.Drop(visioHexagonMaster, 7.0, 5.5); visioHexagonShape.Text = @"Hexagon text."; //Save diagram as VDX vdxDoc.SaveAs("Drawing1.vdx"); }
public void AddShapes() { Visio.Application visio = this.Application; Visio.Documents documents = this.Application.Documents; Visio.Page page = visio.ActivePage; Visio.Document document = visio.ActiveDocument; if (document == null) { document = visio.Documents.Add(""); } if (page == null) { page = document.Pages.Add(); } List <Service> services = null; try { ServicesApi api = new ServicesApi(); services = api.getServices(true, ""); } catch (ApiException e) { System.Windows.Forms.MessageBox.Show("Error calling the LeanIX API: " + e.Message); return; } catch (System.Net.WebException) { System.Windows.Forms.MessageBox.Show("Please check your internet connection"); return; } if (services == null || services.Count == 0) { System.Windows.Forms.MessageBox.Show("No data received from API"); return; } Dictionary <String, Visio.Shape> placedShapes = new Dictionary <String, Visio.Shape>(); //add shapes foreach (Service s in services) { if (s.serviceHasInterfaces == null || s.serviceHasInterfaces.Count == 0) { continue; } Visio.Document stencil = documents.OpenEx("Basic Shapes.vss", (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked); Visio.Master visioRectMaster = stencil.Masters.get_ItemU(@"Rounded Rectangle"); Visio.Shape visioRectShape = page.Drop(visioRectMaster, 0, 0); visioRectShape.Text = s.name; placedShapes.Add(s.ID, visioRectShape); } //connect shapes foreach (Service s in services) { foreach (ServiceHasInterface si in s.serviceHasInterfaces) { Visio.Shape sourceShape = placedShapes[s.ID]; Visio.Shape targetShape = placedShapes[si.serviceRefID]; if (targetShape != null) { sourceShape.AutoConnect(targetShape, Visio.VisAutoConnectDir.visAutoConnectDirLeft); } } } //set the layout and resize the page page.PageSheet.get_CellsSRC( (short)Visio.VisSectionIndices.visSectionObject, (short)Visio.VisRowIndices.visRowPageLayout, (short)Visio.VisCellIndices.visPLOPlaceStyle).ResultIU = 6; page.PageSheet.get_CellsSRC( (short)Visio.VisSectionIndices.visSectionObject, (short)Visio.VisRowIndices.visRowPageLayout, (short)Visio.VisCellIndices.visPLORouteStyle).ResultIU = 1; page.PageSheet.get_CellsSRC( (short)Visio.VisSectionIndices.visSectionObject, (short)Visio.VisRowIndices.visRowPageLayout, (short)Visio.VisCellIndices.visPLOSplit).ResultIU = 1; page.Layout(); page.ResizeToFitContents(); }