Manipulate visio shapes with data passed from vb.net

732 views Asked by At

I have the below code which is opening visio, opening a file in visio, printing the file and then closing; this all works fine.

However, now my task is to pass information over to the visio document page called 'Ticket Task', bind that information to some shapes and then print it.

I know this is possible with vb6 (that is what the outdated code is written in), however is there a way to do this in vb.net?

Thanks!

Code:

''Set up the file path
                Dim docPath As String = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments) + "\" + splFileData(0) + "\" + splFileData(1) + ".vsd"
                'Set up the attributes for the opening/printing of the document.
                psi.UseShellExecute = True
                psi.Verb = "print"
                'psi.EnvironmentVariables.Add("Orders", "Hello")

                psi.Arguments = printer
                psi.WindowStyle = ProcessWindowStyle.Hidden

                psi.FileName = docPath
                Console.WriteLine("Printing: " + docPath)
                'Start the process (open visio document, print, close)
                Process.Start(psi)
1

There are 1 answers

1
Hadi Brais On BEST ANSWER

You'll have to change the way you're opening and printing Visio documents. This tutorial shows how to use VB.NET to work with documents. The Open function returns an object of type Microsoft.Office.Interop.Visio.Document. You can use this object to attach information to shapes as discussed in here. In fact, the VB.NET code is very similar to VB6. If you want Visio to be invisible, you can open the document as follows:

Microsoft.Office.Interop.Visio.InvisibleApp application = new Microsoft.Office.Interop.Visio.InvisibleApp();
application.Visible = false;
Microsoft.Office.Interop.Visio.Document doc = application.Documents.Open...