MS Visio文档跨平台网络浏览器--Universal VisioViewer的实现方法

1 MS Visio软件的XML文档结构

Visio是一款功能强大、拥有大量客户群的办公室矢量绘图软件系统,以其独具特色的模 具、模板、拖曳式绘图方式及智能化绘图等技术而风靡全球。为了促进Visio文档信息与其他 应用系统的充分融合与共享,特别是适应于基于Internet的应用模式,微软公司于2004年宣 布以免费授权的方式提供Visio文档的Reference Schema for Visio——“DataDiagramML” 。

Visio XML文档以“VisioDocument”作为根标记,其子节点则主要以“表(Sheet)”、 “节(Section)”、“行(Row)”及“单元(Cell)”的层次结构描述文档的形状信息、 文本信息、数据信息、控制信息、结构信息及部分元信息。文档高层节点的子孙关系如图1所 示,“StyleSheets”、“Masters”和“Pages”是Visio XML文档的三个重要一级子节点标 记,分别定义了文档所基于的样式、主控形状和页面构成,而隶属于“Pages”层次结构中的 “Shape”节点则是文档的基本、核心和主要的组成要素,并可作为“Masters”层次结构下 相应主控形状的实例而被初始化,同时可继承“StyleSheets”中所定义线型、填充和文本等 样式属性。此外,“Shape”节点的“类型(Type)”属性设有“Group”和“Shape”选项, 这样便可利用前者对形状进一步分组,使得“Shape”节点自身又可组成复杂的树型结构,而 其中的底层节点又可继承高层节点的部分属性。此外,“Masters”层次下的“Shape”节点 除作为“Pages”层次下“Shape”对象的“基类”外,还是用户自定义的线型、线段端点和 填充形状的定义与描述区域。

与微软其他的Office软件相类似,Visio规定了其内部的变量类型、度量单位及运算函数,但 Visio利用公式的范围更加宽泛,特别是单元(Cell)级节点中属性的定义几乎全部规定为公 式。而这种公式的应用又具备其鲜明的特点:其一,尽管随着用户利用Visio软件所进行的文 档编辑操作其取值可能随时变化,但每个公式在任何时点的相应取值均被计算出来并在XML文 档中被静态地记录,这样就使得第三方的程序不必涉及过多的函数及公式的解析与运算;其 二是对于长度单位来说,无论用户指定何种度量单位,Visio均将其转化为内部的单位(英寸 )并记录在XML文档之中,这样亦使得第三方程序不必涉及过多的单位换算。

2  Shape对象的构造2.1 Shape的坐标体系及变换

Visio以ShapeSheet表格对Shape对象的几 何结构及文本属性进行描述,其中含有两个重要的节,即“Shape Transform. Section”和“Text Transform. Section”,在Visio的XML文档中,这两个 节的标记分别为“XForm”和“TextXForm”,其中分别描述了Shape对 象的几何形状和文本的位置与范围。以“XForm”节点为例,通过其子节点 “PinX”、“PinY”、“Width”、“Height” 、“LocPinX”、“LocPinY”、“Angle”、 “FlipX”、“FlipY”的节点值即可完全确定形状的几何位置、大小 、旋转角度及水平或垂直翻转状态,其原理如图2所示。

利用Java AWT中的AffineTransform类可以容易地实现这种变换。假设Shape所基于的“ 上下文坐标变换”——对Visio文档显示进行缩放、平移及翻转等变换或其 所属组对象的变换——为Tx,则为正确显示Shape所进行的坐标变换应该为:

Tx.clone().translate(PinX, PinY). rotate(Angle). Translate(-LocPinX,- LocPinY).scale(-FlipX,-FlipY)

时间: 2024-09-17 04:26:14

MS Visio文档跨平台网络浏览器--Universal VisioViewer的实现方法的相关文章

Aspose.Diagram for .NET 1.4.0发布 MS Visio文档的类库

Aspose.Diagram是一个MS Visio文档操作的类库.它是一个MS Visio对象模型替代的纯http://www.aliyun.com/zixun/aggregation/13480.html">.NET库文件.能够让开发人员在56.html">ASP.NET Web应用程序.Web服务和桌面应用程序上操作VSD和VDX文件.它利用高级的Visio服务功能,在服务器上操作Visio文档.开发人员可以打开的文件和操纵图的元素,线条和填充到更复杂的元素,然后出口到

WPS文档制作网络调查问卷

  1.先打开WPS文字2012,待将要进行问询的内容输入完成后,将光标定位到要进行选择的答案后面,在菜单栏中单击"插入"选项卡,然后在"窗体"功能区中单击"复选框型窗体域"按钮(如图1),待插入完成后再单击"窗体域底纹"命令将窗体域底纹取消. 2.最后单击"保护窗体域"按钮.这样,当我们用鼠标点击复选框时,即可在选中.未选中状态中切换了(如图2). 文档制作网络调查问卷-wps调查问卷">

word2pdf-用JAVA如何将MS Word文档转换为PDF文档

问题描述 用JAVA如何将MS Word文档转换为PDF文档 我现在需要在项目中实现将word转换为pdf文档的功能. 之前在网上查过一些资料,主要就是通过调用openoffice服务的方式实现, 而我需要在不借助系统软件或服务的情况下,就能将word文档转换为pdf格式, 我希望这个转换功能能作为一个独立的组件,在任何系统环境下都能使用. 网上推荐使用 POI + iText 的方法,这个方法也许可行,但是要达到完美效果可能工作量很大. 在这里请教大家,希望有经验的人能给我一点建议!

如何用word文档开发网络聊天

问题描述 如何用word文档开发网络聊天,谢谢高手指点..... 解决方案 解决方案二:不太明白,说清楚点解决方案三:就是说我WORD的界面下,与网络中的其他用户一起聊天.表面上是在用WORD,但里面的是聊天室,可以和别人聊天用的.

struts2 上传文件doc文档,有些浏览器上传后显示application/octet-stream,有些则正常

问题描述 struts配置文件中allowedTypes中已经添加doc和docx的格式但是当上传文件doc文档,有些浏览器上传后显示application/octet-stream,有些则正常为什么?

在Word文档中插入Cad图的3种方法

在word文件中插入我们绘制的cad图,方法大体上有三种,但是它们达到的效果却并不相同,有的显得精致些,有的显得粗糙些,根据我们写作的目的还要进行相应的再处理,这个过程有一些技巧,现在把它写下来,希望能给读者朋友以启发. 要在word文件中插入一个cad图,可以利用下面的三种方法来实现: 第一种,利用键盘上的"print screen sysrq"来抓取cad图,再通过系统自带的画图软件做进一步的修剪,去掉cad剪贴图中多余的部分,这项工作为了是能使图片在word文件中显示的足够的清晰

在Word文档中快速插入日期的五种方法

  在Word文档中快速插入日期的五种方法          方法1:使用"插入"选项卡中的"日期和时间"功能插入当前系统日期. 在"插入"选项卡的"文本"选项组中单击[日期和时间]按钮,打开"日期和时间"对话框,在"可用格式"列表框中选择用户想要的格式,如图1所示.如果用户希望每次打开Word时都自动更新时间,可同时选中"自动更新"复选框. 图1 打开"时

Word文档中设置首字下沉效果的方法

  Word文档中设置首字下沉效果的方法           首字下沉用途非常广,或许你在报纸上.书籍.杂志上也会经常看到首字下沉的效果. 今天就让Office办公助手的小编讲述如何在Word文档中的设置首字下沉效果. Word2003怎样设置首字下沉 首先,选种要设置首字下沉的那个段落,然后单击菜单栏的"格式"中的"首字下沉",在弹出的窗口中可以清楚的看见有三种效果,无.下沉.悬挂,选种某种效果后单击确定按钮就可以了.当然,也可以设置它的"字体"

Word文档中出现打字覆盖问题的解决方法

  Word文档中出现打字覆盖问题的解决方法          其实出现打字覆盖的根本原因是:Word进入了改写模式!有可能在无意中按下了Insert键,使得Word进入了这种模式.而只要将Word调回插入模式,就可以恢复正常了!再次按下Insert键就能达到这种效果哦!当 下图中的Word就是正常的,因为它下面的状态栏中显示出现在是"插入"模式! 方法一:快捷键 将光标定位在Word文档中,然后按下位于键盘右侧的Ins键或者Insert键即可. 方法二:状态栏 1.打开状态栏中的&q