`

使用VisioAutomation.vdx 导出 visio的vdx文件

阅读更多
因为项目需要,开始学习并使用VisioAutomation.vdx,实现代码绘制visio图像。

要求完成一个小的应用程序,提供webservice接口,接收json数据,绘制不同类型的visio图。
因为需要在正式项目中使用涉及visio版权问题,所以服务端是不能安装office visio。寻找了很多资料后决定只能使用VisioAutomation.vdx,绘制vdx文件是比较方便的做法。

架构设计:
封装为 WEB服务,基于REST风格
+ 部署在IIS中
+ 执行POST请求,提交JSON数据源,输出vdx
+ 封装客户端驱动,JAVA语言, JS语言

资料地址:http://visioautomation.codeplex.com/

IDE:VS2010
所使用的包:
clipboard2.jpg.png
clipboard.jpg.png

需要绘制模具,vss文件。
axDrawingControl1.Document.Application.Documents.OpenEx("Basic_U.vss",(short)Visio.VisOpenSaveArgs.visOpenDocked);

代码,初始方法:
  string output_filename = @"F:\\hhpp1.vdx";

            // First load a starter VDX (a.k.a "the template") - we will build a new VDX from this one
            //var template_dom = System.Xml.Linq.XDocument.Load("F:\\model.vdx");
            var template_dom = System.Xml.Linq.XDocument.Parse(VA.VDX.Elements.Drawing.DefaultTemplateXML);

            // Clean up the template - remove the existing pages
            VA.VDX.VDXWriter.CleanUpTemplate(template_dom);

            // Create a new Drawing based on the template
            var doc = new VA.VDX.Elements.Drawing(template_dom);

             GetPage01_Simple_Fill_Format(doc);

            var w1 = new VA.VDX.Elements.DocumentWindow();
            w1.ShowGrid = false;
            w1.ShowGuides = false;
            w1.ShowConnectionPoints = false;
            w1.ShowPageBreaks = false;
            w1.Page = 0;
           
            doc.Windows.Add(w1);

            // now create a writer object
            var vdx_writer = new VA.VDX.VDXWriter();
           
            // merge the template with the new in-memory drawing and save it to the output fie
            vdx_writer.CreateVDX(doc, template_dom, output_filename);

绘图方法:
private VA.VDX.Elements.Page GetPage01_Simple_Fill_Format(VA.VDX.Elements.Drawing doc)
        {
            var page = new VA.VDX.Elements.Page(8, 4);
            doc.Pages.Add(page);
          
            // find the id of the master for rounded rectangles
            int rounded_rect_id = doc.GetMasterMetaData("Rounded REctAngle").ID;

            // using that ID draw a rounded rectangle at pinpos(4,3)
            var shape1 = new VA.VDX.Elements.Shape(rounded_rect_id, 4, 3);
            page.Shapes.Add(shape1);

            // using that ID draw a rounded rectangle at pinpos(2,2) with size (2.5,2)
            var shape2 = new VA.VDX.Elements.Shape(rounded_rect_id, 2, 2, 2.5, 2);
            page.Shapes.Add(shape2);

            // set the fill properties of the second shape
            shape2.Fill = new VA.VDX.Sections.Fill();
            shape2.Fill.ForegroundColor.Result = 0xff0000;
            shape2.Fill.BackgroundColor.Result = 0x55ff00;
            shape2.Fill.ForegroundTransparency.Result = 0.1;
            shape2.Fill.BackgroundTransparency.Result = 0.9;
            shape2.Fill.Pattern.Result = 40;

            shape1.Line = new VA.VDX.Elements.Line();
            shape1.Line.Weight.Result = 1.0;

            shape1.XForm.Angle.Result = System.Math.PI/4;

            return page;
        }
完成效果图:fs.png

test代码:testVisio.rar

test文件VDX:hhpp1.rar
  • 大小: 8.5 KB
  • 大小: 8 KB
  • 大小: 15.8 KB
分享到:
评论

相关推荐

    visioautomation.vdx.1.0.8

    VisioAutomation可能提供了对VDX文件的读写支持,帮助开发者轻松地在程序中导入、导出Visio图表,增强了跨平台和数据交换的能力。 在visioautomation.vdx.1.0.8.nupkg 文件中,我们可以推断这可能是一个NuGet包,...

    Visio.rar_VISIO图形包_sesha_visio_visio package_visio软件

    6. 完成绘图后,可以保存为Visio文件(.vsd或.vdx),或者导出为其他格式,如PDF或图片,以便于分享和打印。 总的来说,Visio科学图形包seshape是理科工作者的强大辅助工具,它为复杂的科学绘图提供了直观、便捷的...

    Visco图标文件

    Visio图标文件是一种在Microsoft Visio中使用的图形文件格式,主要用于创建流程图、组织结构图、网络图等专业图表。Visio是微软公司推出的一款强大的绘图软件,它提供了丰富的模板和形状库,使得用户可以方便地绘制...

    Aspose.Diagram试用版:一款可用于对Visio文件进行打开、读取、转换的控件

    使开发人员可以对 VSD, VSDX, VSS, VST, VSX, VTX, VDW and VDX文件进行打开、操作和导出的控件,在ASP .NET网页应用程序、web服务器和Windows应用程序上的VSD和VDX 文件中,开发者都可以以使用

    pytho_nvisio.rar_python_python Visio_python excel_syllablegzo_v

    在本项目"pytho_nvisio.rar"中,我们关注的是如何利用Python来处理Microsoft Visio创建的流程图,并将其中的信息导出到Excel文件。Visio是一款常用的绘图软件,广泛用于制作流程图、组织结构图等,但其数据往往不...

    VISIO图素之LENOVO

    《使用Visio绘制联想服务器系统图的指南》 在IT行业中,Visio是一款强大的图形设计软件,被广泛用于创建各种流程图、网络拓扑图以及系统架构图等。本篇文章将详细探讨如何利用Visio中的"LENOVO"图素,来绘制联想...

    VisioViwer工具

    1. **兼容性**:VisioViewer能够打开和显示.VSD、.VSDX、.VSX、.VDX、.VST、.VSTX、.VSW、.VSX等多种Visio文件格式,使得用户可以方便地查看各种类型的Visio图表。 2. **轻量级**:由于它是一个独立的阅读器,体积...

    Visio流程使用工具

    4. **图表交互性**:Visio支持将图表导出为交互式网页格式(.VDX),这样可以在网页或SharePoint上分享,用户可以通过点击来查看各个部分的详细信息。 5. **数据链接**:Visio 2016引入了数据链接功能,可以将图表...

    OmniGraffle-mac版的viso

    1.OmniGraffle可以用来绘制图表,流程图,...OmniGraffle专业版可以利用Visio的XML导出函数以导入/导出Visio的XML文件。  3.OmniGraffle Professional的软件界面非常的漂亮,并且具有大量的优秀美观的模板可以使用.

    免费Visio查看器(Mac、Windows、Linux)「Free Visio Viewer (Mac, Windows, Linux)」-crx插件

    免费打开您的微软Visio文件。...享受实时协作,从任何设备访问图表以及易于使用的直观编辑器,更不用说导入和导出Microsoft Visio文件了。在云中进行绘制从未如此简单。 支持语言:English (United States)

    Free Visio Viewer (Mac, Windows, Linux)-crx插件

    语言:English (United States) 为frive 打开Microsoft Visio... 享受实时协作,从任何设备访问您的图表,以及一个易于使用的直观编辑器,更不用说用于Microsoft Visio文件的导入和导出。 在云中图表中从未如此容易。

    超越visio的edraw

    此外,Edraw支持多种格式的导入和导出,包括Visio文件(.vsd, .vdx),这使得用户在不同软件之间切换时,能够无缝衔接。 在界面设计方面,Edraw注重用户体验,采用简洁明快的设计风格,使得初学者也能快速上手。...

    OmniGraffle Office2007全部模板库,已转换为OmniGraffle可以使用

    3. **转换过程**: 转换过程可能涉及到将Visio的.VSD或.VDX文件转换成OmniGraffle的.GRAF或.GRAX文件。这通常需要特定的转换工具或插件,以确保图形元素、连接线和样式在转换过程中得以保留。转换后的模板在...

    java Jacob 解析visio!

    解析VDX文件时,开发者需要深入理解Visio对象模型和DatadiagramML Schema,然后通过编写代码对XML文件进行底层操作,这通常意味着需要较高的技术能力,尤其是在处理复杂的Visio文档时。 最后,调用微软提供的COM...

    visioviewer中文版

    3. **便捷的操作**:VisioViewer界面简洁直观,用户可以轻松打开、缩放、平移Visio文件,查看详细内容,同时支持打印和导出图片。 4. **兼容性**:VisioViewer不仅兼容32位Windows系统,还有对应的64位版本,满足...

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

    - **HDGF (Horrible Drawing Group Format)** 是针对Microsoft Visio文件(.vsd、.vdx等)的读取API。 2. **创建Excel文档:** 示例1展示了如何使用Apache POI创建一个简单的Excel文件。首先,创建一个新的`...

    jcom.jar和jcom.dll

    1. **Visio操作**:通过jcom,Java开发者可以创建、打开、修改Visio图表,生成流程图、组织结构图等,甚至可以读取和保存Visio文件的VSDX或VDX格式。 2. **Word操作**:利用这个库,可以创建新的Word文档,编辑现有...

    yaoqiang-bpmn-editor-5.5.1.jar

    进口的Visio VDX文件,并转换为BPMN2.0文件(仅适用于2.0.x版) GraphML GraphML文件导入并转换为BPMN2.0文件(仅适用于2.0.x版本) 导入自定义的文物 导出HTML,PNG,JPG,BMP,GIF,SVG,VML格式 导出OpenDocument...

Global site tag (gtag.js) - Google Analytics