Localizing a .NET office extension (desktop)

This article summarizes my experience on translating office add-ins to multiple language. It is not an official guide, but just how you could do it. It assumes you have an office extension (VSTO, desktop) in a single language, and want to provide it in some other languages for users in other countries.

GitHub demo repository:

For generic information on localization on application localization in .NET, please refer the official Microsoft documentation: https://docs.microsoft.com/en-us/dotnet/framework/resources/index

The steps I suggest:

Continue reading"Localizing a .NET office extension (desktop)"

SvgPublish updated 1.2.11

The SvgPublish extension has been updated to version 1.2.11

Visit the extension's page:

Download the latest version:


New: Translations for German and Russian languages. Now all options and exported elements can be displayed in these languages. Japanese translation is ongoing.

Fixed relative links behavior. Please see the related article for the details.

Fixed layer behavior. Now in case when shape belongs to multiple layers, the show/hide logic corresponds one-to-one to the Visio layers logic. Also, now by default only the layers visible in Visio are toggled on; invisible layers are toggled off by default on export.

New: Non-compressed versions of scripts and templates are included to simplify customization. You can opt in to export non-compressed version by selecting a custom template without .min suffix on the developer tab.

Some stability fixes and improvements. For the full list please refer to the milestone issue list:

SvgExport updated 1.2.10

The SvgPublish extension has been updated to version 1.2.10

Download to the latest version:

Visit the extension's page:

The summary of the recent updates and bugfixes:

New: add "hover + click" tooltip and popover behavior. This feature is supposed to solve the problem when you want to publish tooltips or popovers, that have some hyperlinks in the text body. Now you can enable them to show up and disappear if the user moves the cursor outside of the shape. However, they will stay if the user has clicked on the shape. The new setting is shown on the screen below, select trigger as "hover click", i.e. both. You can also select "Hide if clicked outside" if you want the "fixed by click" tooltips to disappear when clicked outside of the shapes.

Continue reading"SvgExport updated 1.2.10"

Using SvgPublish as Visio Online script playground

In the latest release of the SvgPublish extension (1.2+),
a new script editor is added that allows to play with scripting for the new Visio Online with comfort.

Here is the "online" version (in-browser editing):


The experience is somewhat similar to the ScriptLab, a project to support other Office applications, when you can write some code and then run it both online and offline.

Continue reading"Using SvgPublish as Visio Online script playground"

HTML Export plugin API documentation

The HTML Export plugin supports automation API (can be called programmatically). This allows you to execute export with code. The addin can be used from any language that supports automation, including in particular Visio's VBA, .NET languages, powershell, etc. Basically, if you can call Visio API, you should be also able to call the plugin API. The type library is installed with the addin (named is called "GenerateVisioSvg"), and you can use it to add a reference to your project for autocomplete.

With API, you can:

  • Export to disk, sharepoint, github
  • Get/Set any export parameters (paths, options, authorizations, etc)

In other words, there is finally a documentation for the plugin's Visio API 🙂
Check out the API page and the API Reference

The documentation refers to the latest version 1.2

Starting PuTTY from an exported HTML diagram

Consider a following scenario: you have a diagram containing network devices (servers) and you want to start PUTTY client when any of those devices is clicked to open SSH session to a corresponding device. And you want that to be on a webpage.

A possible solution to that on windows is to register a custom application protocol and map it to launch an executable. You can see a common example when "callto:" link opens Skype. Here are some explanations. This works for all major browsers, works also in Visio (without any macros).

With Visio (and a tiny SVG Publish script), this approach can be customized. Suppose you have a rack diagram, which already has all server addresses ready. SVG Publish can convert the data into custom links that can be used to launch an executable (PuTTY in this example).

Continue reading"Starting PuTTY from an exported HTML diagram"

Command line to import/export Visio VBA code

The import/export VBA extension supports not only the UI (button-click), but also command line interface!

It was not initially documented (now it is), but the tool includes command-line utility as well, so that one can use it with powershell script or a batch file (for batch processing of files), or in any other automated way. For this functionality MSI (full) version is required:  VisioImportExportVba (912.0 KiB)

Below are some examples of what can be done using command line.

Continue reading"Command line to import/export Visio VBA code"