Jump to content

libvisio

From The Document Foundation Wiki
libvisio
Microsoft Visio import library
The Document Liberation Project
Development statusStable
LicenseMPL 2.0
MaintainersDavid Tardon (dtardon@redhat.com)
Eilídh McAdam (tibbylickle@gmail.com)
Fridrich Strba (fridrich.strba@bluewin.ch)
Repositorygit://gerrit.libreoffice.org/libvisio
Sourceshttp://dev-www.libreoffice.org/src/libvisio

Libvisio is a library that parses the file format of Microsoft Visio documents of all versions.

Getting the sources

libvisio sources are stored in git. To get them, you can use:

git clone git://gerrit.libreoffice.org/libvisio

or you can browse the code online.

Source tarballs of all released versions can be found here.


Building the code

You will need these tools and libraries to build libvisio:

sudo apt install build-essential automake libcppunit-dev autotools-dev libtool libboost-dev gperf librevenge-dev libxml2 perl doxygen libxml2-dev libicu-dev libcppunit-dev

Once you have the source code and the dependencies, you can proceed to build. To do that, run the customary sequence of commands in the source code directory:

./autogen.sh ''# only needed for building from git''
./configure --enable-debug --enable-werror --without-docs
make

To run tests you could type command:

make check

To install library in /usr/local/ directory (e.g. /usr/local/lib/libvisio-0.1.so):

make install

To configure and build LibreOffice, to use locally installed libvisio:

./autogen.sh --with-system-libvisio 
make

Before installing, to avoid running with super user provileges, try to change user to current:

sudo chown -R $USER /usr/local

Contributing

Hacking

There are several ways to analyse Visio files:

The information about LibreOffice Draw file format is available here.

Documentation about Visio file format (.vsdx) is available at Microsoft page and in official Microsoft documentation

The information how to setup development environment is available at: libvisio-setup

Workflow

librevenge tries to give a C++ API which mostly maps to flat ODF 1:1. It means that most complexity can be figured out by:

  1. Manually construct an image and save it as Flat XML ODF Drawing (.fodg) that does what you want (hand-edit, import into Draw, check the result, goto 1).
  2. Once you know what ODG you want to generate, tweak libvisio to emit librevenge calls that generate the ODG you want.

Integration to repository

Once you have made a change that you are happy with, contribute it back, we'll be happy to integrate it!

Submit it to gerrit. How to work with gerrit is described here.

To push to review:

git push ssh://gerrit.libreoffice.org:29418/libvisio HEAD:refs/for/master

Samples of Visio Documents

Samples of Drawind, Stensils and Templates could be downloaded from:

History

GSoC Interview