因为项目需要,开始学习并使用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文件的读写支持,帮助开发者轻松地在程序中导入、导出Visio图表,增强了跨平台和数据交换的能力。 在visioautomation.vdx.1.0.8.nupkg 文件中,我们可以推断这可能是一个NuGet包,...
6. 完成绘图后,可以保存为Visio文件(.vsd或.vdx),或者导出为其他格式,如PDF或图片,以便于分享和打印。 总的来说,Visio科学图形包seshape是理科工作者的强大辅助工具,它为复杂的科学绘图提供了直观、便捷的...
Visio图标文件是一种在Microsoft Visio中使用的图形文件格式,主要用于创建流程图、组织结构图、网络图等专业图表。Visio是微软公司推出的一款强大的绘图软件,它提供了丰富的模板和形状库,使得用户可以方便地绘制...
使开发人员可以对 VSD, VSDX, VSS, VST, VSX, VTX, VDW and VDX文件进行打开、操作和导出的控件,在ASP .NET网页应用程序、web服务器和Windows应用程序上的VSD和VDX 文件中,开发者都可以以使用
在本项目"pytho_nvisio.rar"中,我们关注的是如何利用Python来处理Microsoft Visio创建的流程图,并将其中的信息导出到Excel文件。Visio是一款常用的绘图软件,广泛用于制作流程图、组织结构图等,但其数据往往不...
《使用Visio绘制联想服务器系统图的指南》 在IT行业中,Visio是一款强大的图形设计软件,被广泛用于创建各种流程图、网络拓扑图以及系统架构图等。本篇文章将详细探讨如何利用Visio中的"LENOVO"图素,来绘制联想...
1. **兼容性**:VisioViewer能够打开和显示.VSD、.VSDX、.VSX、.VDX、.VST、.VSTX、.VSW、.VSX等多种Visio文件格式,使得用户可以方便地查看各种类型的Visio图表。 2. **轻量级**:由于它是一个独立的阅读器,体积...
4. **图表交互性**:Visio支持将图表导出为交互式网页格式(.VDX),这样可以在网页或SharePoint上分享,用户可以通过点击来查看各个部分的详细信息。 5. **数据链接**:Visio 2016引入了数据链接功能,可以将图表...
1.OmniGraffle可以用来绘制图表,流程图,...OmniGraffle专业版可以利用Visio的XML导出函数以导入/导出Visio的XML文件。 3.OmniGraffle Professional的软件界面非常的漂亮,并且具有大量的优秀美观的模板可以使用.
免费打开您的微软Visio文件。...享受实时协作,从任何设备访问图表以及易于使用的直观编辑器,更不用说导入和导出Microsoft Visio文件了。在云中进行绘制从未如此简单。 支持语言:English (United States)
语言:English (United States) 为frive 打开Microsoft Visio... 享受实时协作,从任何设备访问您的图表,以及一个易于使用的直观编辑器,更不用说用于Microsoft Visio文件的导入和导出。 在云中图表中从未如此容易。
此外,Edraw支持多种格式的导入和导出,包括Visio文件(.vsd, .vdx),这使得用户在不同软件之间切换时,能够无缝衔接。 在界面设计方面,Edraw注重用户体验,采用简洁明快的设计风格,使得初学者也能快速上手。...
3. **转换过程**: 转换过程可能涉及到将Visio的.VSD或.VDX文件转换成OmniGraffle的.GRAF或.GRAX文件。这通常需要特定的转换工具或插件,以确保图形元素、连接线和样式在转换过程中得以保留。转换后的模板在...
解析VDX文件时,开发者需要深入理解Visio对象模型和DatadiagramML Schema,然后通过编写代码对XML文件进行底层操作,这通常意味着需要较高的技术能力,尤其是在处理复杂的Visio文档时。 最后,调用微软提供的COM...
3. **便捷的操作**:VisioViewer界面简洁直观,用户可以轻松打开、缩放、平移Visio文件,查看详细内容,同时支持打印和导出图片。 4. **兼容性**:VisioViewer不仅兼容32位Windows系统,还有对应的64位版本,满足...
- **HDGF (Horrible Drawing Group Format)** 是针对Microsoft Visio文件(.vsd、.vdx等)的读取API。 2. **创建Excel文档:** 示例1展示了如何使用Apache POI创建一个简单的Excel文件。首先,创建一个新的`...
1. **Visio操作**:通过jcom,Java开发者可以创建、打开、修改Visio图表,生成流程图、组织结构图等,甚至可以读取和保存Visio文件的VSDX或VDX格式。 2. **Word操作**:利用这个库,可以创建新的Word文档,编辑现有...
进口的Visio VDX文件,并转换为BPMN2.0文件(仅适用于2.0.x版) GraphML GraphML文件导入并转换为BPMN2.0文件(仅适用于2.0.x版本) 导入自定义的文物 导出HTML,PNG,JPG,BMP,GIF,SVG,VML格式 导出OpenDocument...