1. Products
  2.   Diagram
  3.   C++
  4.   EXDVisio

Open Source C++ Visio Diagramming Library

Create, Edit, view, Read, & Manipulate Visio Drawings via Open Source Free C++ Diagramming Library.

EXDVisio is an open source C++ Library that provides a set of powerful tools for visualizing and manipulating complex data structures. The library has included several important features related to vector drawing, modifying SVG, Visio-like GUI, flow diagram drawing, flow charts, vector, graphic editing, printing, SVG import, SVG export, DXF Import, Visio-style multi-page design support, composite text editor support, DXF Export and many more.

The library is very flexible and easy to use, making it an ideal choice for a wide range of applications, including scientific visualization, data analysis, and computer graphics. The library has included support for a complex form of geometric operations such as intersection, phase, subtracting, and so on. The library has included advanced features for handling graphics on canvas, such as direct rotation, scaling, moving, deformation, distortion, and other advanced operations. The library was developed by the EXDS research group at the University of Salerno in Italy and is distributed under the GNU General Public License.

EXDVisio is highly customizable, allowing software developers to easily modify and extend its functionality to meet their specific needs. The library includes support for popular file formats, such as OBJ, STL, XML, ArcGIS, as well as a number of specialized formats for scientific data, such as DXF, VTK, and HDF5. It allows software developers to export their drawings to EMF, PNG, BMP, JPEG, PDF, SVG, and other file formats. Moreover, the API includes a number of advanced rendering techniques, such as ray tracing and ambient occlusion, which allow for the creation of high-quality, photorealistic images.

Previous Next

Getting Started with EXDVisio

The recommend way to install EXDVisio is using GitHub. Download the source code for the library from the project's website or GitHub repository. Please use the following command for a smooth installation.

Install EXDVisio via git command

git clone https://github.com/jackonlyone1/EXDVisio.git

Generate Visio Drawings via C++ API

The open source EXDVisio library gives software developers the power to work with Visio Drawings inside their own C++ applications. The library has include several important features related to Visio Drawings management, such as create a new drawing from scratch, load existing drawings, set background and foreground, add elements to the drawing (lines, circles, text, rectangles), shape scaling, rotate elements, and many more. The following example demonstrates how to create a simple DXF drawing using the EXDVisio library in C++.

How to Create Simple DXF Drawing via C++ Library?

#include "visio.h"

int main()
    // Initialize Visio object
    Visio visio;

    // Create a new drawing

    // Add a line to the drawing
    visio.addLine(0, 0, 100, 100);

    // Add a circle to the drawing
    visio.addCircle(50, 50, 25);

    // Add some text to the drawing
    visio.addText("Hello, world!", 50, 75);

    // Save the drawing in DXF format

    return 0;

Visio Drawings Conversion via C++ API

The open source EXDVisio library is a very efficient solution for loading and converting Microsoft Visio drawings to various file formats inside their own C++ applications. It allows users to read and write Microsoft Visio binary files (VSD and VDX). To convert a Visio drawing to another format, you can use EXDVisio to extract the necessary information from the Visio document and then use another library to create the output format. The library has included support for converting Visio drawing file various other file formats such as DXF, EMF, PNG, BMP, JPEG, PDF, SVG, and other file formats.

Convert Visio Drawing to SVG via C++ Library


int main() {
  // Load Visio drawing into memory
  EXDDocument visioDoc;

  // Create SVG Document
  EXDSVGDocument svgDoc;

  // Traverse Visio Document and extract information
  for (int i = 1; i <= visioDoc.getPages(); i++) {
    EXDPage page = visioDoc.getPage(i);
    for (int j = 1; j <= page.getShapes(); j++) {
      EXDShape shape = page.getShape(j);
      // Extract shape information and generate SVG elements in svgDoc

  // Save SVG Document to file

  return 0;