Visio importer in LibreOffice gets text support
by Aleksandr ProkudinNew version of libvisio is out with basic text support, support for NURBS, gradients, and more

A month ago we reported on first bits of support for Visio files landing to LibreOffice. It’s about time we published an update.
Highlights of newer version of libvisio: basic text support, support for NURBS and gradients and more. The project is being worked on by Eilidh McAdam thanks to Google Summer of Code program, mentored by Fridrich Strba and supported by truly yours re-lab team. In fact Valek started contributing to libvisio directly a while ago (before he only worked on reverse-engineering).
At this point it still doesn’t make a lot of sense to demonstrate anything but purely synthetic test images, but I’m feeling brave, and anyway how would I possibly get away with a news item without images? So here is an original VSD created with Visio 2010:
And here is an SVG generated with vsd2xhtml tool from writerperfect package. Note that the map is rendered incorrectly because it’s actually a stencil, and stencils are only partially supported presently.
If you’re interested in all the dirty details, let’s go a bit low-level and list thus far supported VSD features:
- all geometry features such as MoveTo, LineTo, PolylineTo, ArcTo, EllipticalArcTo, Ellipse, NURBSTo with excpetion of SplineStart and SplineKnot;
- strokes, stroke styles (not entirely bug-free), transparent, plain and gradient fills;
- page size and orientation, multipage documents;
- text, including basic formatting (size, bold and italic faces);
- transformations such as rotation and flipping (works for groups too);
- groups of objects;
- embedded bitmaps.
That’s what’s in v0.0.4, while current code in Git already supports even more text related settings. There are lots and lots of features that are not supported yet, starting with connection points and ending with VBA. Some of them will take a short while to finish, some are likely to be postponed.
Just like before, if you are willing to test the whole stack, you need both source code (it’s still best to build from Git), libwpd, libwpg and writerperfect. The latter should be built with --with-libvisio option to enable building of vsd2odg and vsd2xhtml utilities. LibreOffice from Git should be able to open VSD files directly.
Patreon subscribers get early access to my posts. If you are feeling generous, you can also make a one-time donation on BuyMeACoffee.