Skip to main content

VisioArchive

At the core of the plugin lies the VisioArchive class, which is a bridge between Microsoft Visio and JointJS. It's main purpose is to translate a Visio vsdx archive into a VisioDocument instance.

Methods

toVSDX()

async visioArchive.toVSDX<T extends keyof VisioArchive.ToVSDXOutputByType = 'blob'>(options?: {
type: T,
compression?: 'STORE' | 'DEFLATE',
compressionOptions?: null | {
level: number;
}
}): Promise<VisioArchive.ToVSDXOutputByType[T]>;

Use data stored in the VisioArchive instance to generate a vsdx file. This method will return a promise resulting in a vsdx file in a chosen format.

The toVSDX([opt]) method takes an object opt with the following parameters:

type

Format type in which the vsdx will be returned. By default 'blob' type is used. Other accepted types are: 'base64', 'binarystring', 'array', 'uint8array', 'arraybuffer'

compression

Compression method to use. Available options are 'STORE' and 'DEFLATE'. Defaults to 'STORE'.

compressionOptions

Additional compression options, ignored when using 'STORE' method. Only available option is compression level, which is a number between 1 (best speed) and 9 (best compression).

const blob = await archive.toVSDX({
type: 'blob'
compression: 'DEFLATE',
compressionOptions: {
level: 9
}
});

Usage

const blob = await visioArchive.toVSDX({ type: 'blob' });
joint.util.downloadBlob(blob, 'project.vsdx');

A basic example of export process using default converter can be found Visio learn section.

Properties

There are several properties that can be accessed:

document

visioArchive.document: VisioDocument;

The document property holds an instance of VisioDocument of an imported vsdx archive.

source

visioArchive.source: ArrayBuffer;

The source property holds the original archive used to create the VisioArchive instance. It's being stored as an ArrayBuffer.

Static Methods

fromArrayBuffer()

async fromArrayBuffer(buffer: ArrayBuffer): Promise<VisioArchive>;

Load a Visio vsdx archive from an ArrayBuffer. This method returns a Promise.

const url = './project.vsdx';
const contentType = 'application/vnd-ms-visio.drawing;charset=utf-8';

const file = await fetch(url, { headers: { 'Content-Type': contentType }});
const arrayBuffer = await file.arrayBuffer();

const archive = await VisioArchive.fromArrayBuffer(arrayBuffer);

fromBase64()

async fromBase64(base64: string): Promise<VisioArchive>;

Load a Visio vsdx archive from a base64 string. This method returns a Promise.

fromURL()

async fromURL(url: string): Promise<VisioArchive>;

Load a Visio vsdx archive fetching it from a provided URL. This method returns a Promise.

const url = './project.vsdx';
const archive = await VisioArchive.fromURL(url);

A blank project that can be used to test the export process can be fetched from our documentation.

Types

ToVSDXOutputByType

interface ToVSDXOutputByType {
base64: string;
string: string;
text: string;
binarystring: string;
array: number[];
uint8array: Uint8Array;
arraybuffer: ArrayBuffer;
blob: Blob;
nodebuffer: Buffer;
}