Universal VisioViewer 1.0

A Platform-independent Viewer for Visio XML Documents

About Universal VisioViewer 1.0

This software is a viewer for MS Visio documents in XML format, in which all the functions are coded in Java language so that the software is platform independent, and is encapsulated into a component so that the software can easily be integrated with any other Java-based application. Of course, by adding some appropriate controlling functions and input/output interfaces, the component can also be programmed as an individual application which serves as a pure Viewer for MS Visio XML Documents, in a platform-independent way.

Technical Background

Visio is an important component of Microsoft Office Suite, which has a tremendous amount of users and has produced a huge amount of documents all around the world.  However, Visio can only be run under the Windows Operating System, the abundant documents produced by it cannot be read in other platforms. For this reason, Visio documents cannot reach their full efficiency.

In order to eliminate the dependency of Visio documents on the Windows environment, especially the output related functions such as dispatching the documents via network, revealing the content on the screen or printing it on a device, etc., it is necessary to reconstruct the corresponding functions by the platform-independent techniques, especially Java and XML techniques. In this way, we can not only extend the scope which the documents can be shared, but also can use the vectorgraph of Visio documents to enhance our user interfaces.

Functional Architecture

Figure 1 shows the functional architecture of this software. It mainly consists of 4 parts: 1) A Parser for the Visio XML documents. Based on the XML Schema for MS Visio, it can read and analyze the components and objects in a Visio XML document; 2)A Convertor. By abandoning some components and objects in a Visio document which are generally unuseful for the output processing such as the ICON objects, and by carrying on other converting tasks, the convertor can generate a new document with the compressed size, improved parsing efficiency, and enhanced convenience for dispatching and delivering on the network, compared to the original document; 3)A Library which encapsulates the necessary meta-graph objects. The Objects in the library are corresponding with those in the original Visio document structure, but are reconstructed with Java. 4) A Palette Library which encapsulates the objects to carry out the output processing for different devices, such as screen, printer or plotter, and other objects to make some transformation such as drag & drop, translation, rotation, shear, zooming and symmetric. 5) An Interface Repository, which includes the document-interface objects, event-interface objects, coordinates-interface objects and palette-interface objects. They can be used  to realize the integration with other Java-based applications.

 

Usage

The software can be used in two ways. First of all, the component of this software can be embedded in other Java-based applications so that the host application can open the Visio documents & reveal their contents, or make its graphical interface enhanced, just as figure 2 shows. What  makes the component be integrated naturally with other applications is the combined use of the objects in Interface Repository: 1) with the document-interface objects in the Repository, the host application can open & close Visio Documents on native or network environment; 2) with the event-interface objects, the operating and controlling events to the opened Visio labels can be integrated with those for the host application based on the Event Queues mechanisms of Java; 3) with the coordinates-interface objects, the host application may program some callback functions to map its logical coordinates to the device(screen) coordinates used by the component. 4) with the palette-interface objects, the host application can specify and change the output devices for the Visio documents, such as screen, printer or plotter, etc.

An example for the component to be used in this way is an EG project we contract with MII of China Government, in which the component of this software is integrated with a Java Applet to mark special objects on maps using Visio labels. Because of the incomparable vectorgraph creation and the representation ability of Visio documents, it is proved in the project that this software is competent for the required functions. Figure 3 shows a typical interface of this Applet, and the real Applet can be run by accessing the following website: http://www.xiaoan.com/project.htm.

 

The second way to use this software is to make it an individual application for the Visio Documents viewing in a platform-independent way. As mentioned above, we must develop some controls and input/output interfaces to make the component work well. A typical output interface is shown in figure 4.

 Copyrights

The software described in this manual incorporates copyright protection technology that is protected by China Invention Patents(Application Number:200710142828.0) and other intellectual property rights owned by XiaoChenKeXin Company Ltd. Use of this copyright protection technology must be authorized by XiaoChenKeXin Company and is intended for home and other limited viewing uses only unless otherwise authorized by XiaoChenKeXin Company. Reverse engineering or disassembly is prohibited.