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;
}