Export (0) Print
Expand All

About Programming Microsoft Office Visio 2007 Viewer

Microsoft Office Visio 2007 Viewer is an ActiveX control that enables you to open, view, or print Microsoft Office Visio drawings, even if you do not have Visio 2007. To edit, save, or create a new Visio drawing, you must have Office Visio 2007 installed.

The Viewer provides an application programming interface (API) that enables solution developers to perform the following tasks:

  • Load and unload Visio drawings
  • Select shapes
  • Follow hyperlinks
  • Display Viewer dialog boxes to the user
  • Customize the size and position of the Viewer window
  • Customize the user interface by changing foreground and background colors and displaying or hiding the grid and the scrollbars
  • Control the color and transparency of layers in the drawing
  • Control the color and visibility of reviewer markups (comments)
  • Customize the toolbar by adding or removing buttons
  • Respond to user actions in the Viewer interface

You can place a Viewer control in a Windows form or on a Web (HTML) page, and you can use various programming environments to program the Viewer.

You can use Visual Basic 6.0 to instantiate the Viewer control in various containers, such as a Windows form, for example. First, you must get a reference to the Viewer API.

Use the following procedure to get a reference to the Viewer API in a Visual Basic 6.0 project.

To get a reference to the Viewer API in a Visual Basic 6.0 project

  1. Open Microsoft Visual Basic 6.0. In Microsoft Vista, right-click the program shortcut and then click Run as administrator.
  2. In Visual Basic 6.0, open a new Standard EXE project.
  3. In your project, right-click the Toolbox, click Components, select Microsoft Visio Viewer 12.0 Type Library, and then click OK.
  4. Before you compile your code, on the Project menu, click [your project name] Properties.
  5. On the Make tab, verify that Remove information about unused ActiveX controls is not selected.

The following code shows how to instantiate the Viewer in a form in Visual Basic 6.0. It creates a Viewer control, displays the Properties and Settings dialog box, sets the location, size, and visibility of the control within the form, and loads a document named "MyFile.vsd" into the control.

Add the following code to the project you created.

Dim Viewer1 As VisioViewerCtl.Viewer

Private Sub Form_Load()
    
    Set Viewer1 = Form1.Controls.Add("VisioViewer.Viewer", "Viewer1", Form1)

    Viewer1.Visible = True
    Viewer1.Left = 200
    Viewer1.SRC = "C:\Users\username\Documents\MyFile.vsd"

    Viewer1.Height = 5000
    Viewer1.Width = 5000
    Viewer1.DisplayPropertyDialog

End Sub

You can use the Viewer control to embed a Visio drawing into a Web page, by manually inserting tags and parameters in the source code of the page. To write the source code, you can use a text editor, such as Notepad, or any other application that creates Web pages, such as Microsoft Expression Web or Microsoft SharePoint Designer.

You can set any of the properties of the Viewer by using the PARAM tag, as shown in the following sample code, which sets the Src property of the Viewer.

Notice that because the Viewer is an ActiveX control, its behavior is influenced by Internet Explorer security settings.

The following code shows how to open a Visio drawing file in a Viewer control on a Web page. It sets the height and width of the Viewer control on the page and loads a source document into the control.

Copy the code into a file in a text editor, and save the resulting document as an HTM file. The Visio document "SalesData.vsd" referenced by the Src parameter should be in the same folder as the HTM file.

<html>
<OBJECT id="DrawingControl1"
    height=400 
    width=600
    classid="clsid:279D6C9A-652E-4833-BEFC-312CA8887857" VIEWASTEXT>
<PARAM NAME="Src" VALUE="SalesData.vsd">
</OBJECT>
</html>

You can use managed code to instantiate the Viewer control in various containers, such as a Windows form. First, you must get a reference to the Viewer API.

Use the following procedure to get a reference to the Viewer API in a Visual Studio 2008 project.

To get a reference to the Viewer API in a Visual Studio project

  1. On the Start menu, point to All Programs, click Accessories, and then click Command Prompt to open the Command Prompt window.
  2. In the Command Prompt window, navigate to the Microsoft Office/Office 12 subfolder of the Program Files folder.
  3. Copy the file VViewer.dll to a folder location to which you have permission to write new files, for example, your user folder.
  4. Close the Command Prompt window, and then open the Visual Studio 2008 Command Prompt window. (On the Start menu, point to All Programs, click Microsoft Visual Studio 2008, click Visual Studio Tools, and then click Visual Studio 2008 Command Prompt).
  5. In the Visual Studio 2008 Command Prompt window, navigate to the folder to which you copied the Viewer DLL file.
  6. In that folder, type "AxImp.exe vviewer.dll" to generate several files, including AxVisioViewer.dll.
  7. In Visual Studio 2008, open a new Windows Forms Application project.
  8. In your project, on the Project menu, click Add Reference, and then click Browse.
  9. Browse to the folder where you created the AxVisioViewer.dll file, select that file in the list, and then click OK.

In your Visual Studio project, in the Form1.cs file, add the following code to instantiate the Viewer control, set some of its properties, and load a test file into the control. This code assumes that you have a Visio file named "test.vsd" in your Documents folder, at the path shown. Modify the path and file names accordingly for your computer.

public partial class Form1 : Form
    {
        private AxVisioViewer.AxViewer viewer;

        /// <summary>
        /// The Visio Viewer OM
        /// </summary>
        public AxVisioViewer.AxViewer Viewer
        {
            get
            {
                return this.viewer;
            }
        }

        public Form1()
        {
            this.InitializeComponent();
            this.Resize += new EventHandler(this.UpdateSize);
            this.viewer = new AxVisioViewer.AxViewer();
            this.Controls.Add(this.viewer);
            this.viewer.CreateControl();

            this.viewer.Location = new Point(0, 0);
            this.UpdateSize(null, null);
         
        }

        public void UpdateSize(object obj, EventArgs ea)
        {
            this.viewer.ClientSize = new Size(this.ClientSize.Width - 150, this.ClientSize.Height - 150);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.viewer.Load("C:\\users\\username\\documents\\viewer\\test.vsd");

        }        

    }


Community Additions

Show:
© 2014 Microsoft