如何呈现读取Visio文件的图形

问题描述 投票:0回答:1

我读过Microsoft的this interesting article。我了解到,Visio文件只不过是一个包含XML以及有关图形的所有信息的Zip文件。使用同一篇文章中的代码,我设法浏览了Visio文件,例如,获得了我感兴趣的形状的XML节点。

我的目的是绘制图形本身!但是我的主要约束是应用程序一定不能依赖客户端中安装的Visio。因此,我应该编写纯C#来呈现图形,或者引用一些DLL来帮助我在未安装Visio的情况下绘制图形。

在同一篇文章的底部,在页面底部,有一个名为pkgVisio的链接。一个可以浏览和显示图形的VB项目。该项目的问题是1)在VB中! 2)它引用了几个我不知道并且不知道从哪里获取的DLL(AxMicrosoft.Office.Interop.VisOcx,Microsoft.Office.Interop.Visio,Microsoft.Office.Interop.VisOcx,Microsoft。 Practices.EnterpriseLibrary.Common,Microsoft.Practices.EnterpriseLibrary.ExceptionHandling,Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging)

[我正在寻找一种方法来开发可以呈现Visio文件的程序,或者,如果存在的话,可以执行相同功能的简单项目。

任何提示或帮助将不胜感激,谢谢

c# .net office-interop visio
1个回答
0
投票

我认为,如果您有真实的图表,那么这项任务或多或少就没有希望。尽管Visio vsdx文件由纯文本XML文件组成,但在这些XML文件中却有公式。问题不是读取XML文件,而是构建渲染引擎,实际上是一个“巨大的计算器”,正如Visio的一位创建者所注意到的那样。意味着,通常,您实际上不会在这些XML文件中找到要渲染的形状的坐标,而是找到了计算这些坐标的规则。

因此,我的建议是:如果要在不使用Visio的情况下呈现Visio图表,请忽略它或使用商业软件包

提到的库是:

  • VisOcx-这是Visio绘图控件,仅与Visio本身一起安装。基本上,这是ActiveX包装控件,用于将Visio嵌入到您的应用程序中。

  • EnterpriseLibrary-这是Microsoft Enterprise Library

© www.soinside.com 2019 - 2024. All rights reserved.