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