SVG
Exports the Paper as SVG. Learn more about the SVG plugin.
Functionsβ
toSVG()β
toSVG(
paper: dia.Paper,
callback: (svg: string, error?: Error) => void,
opt?: SVGExportOptions
): void;
Converts the content of the paper to an SVG string, and calls a callback with the SVG string as the first parameter. The second parameter of the callback is an optional error in case something happened during processing.
openAsSVG()β
openAsSVG(paper: dia.Paper, opt?: SVGExportOptions): void;
Opens a new window with SVG representing the content of the paper.
Configurationβ
The toSVG(paper, callback[, opt])
method takes an options object opt
with the following properties:
preserveDimensionsβ
By default, the resulting SVG document has a set width and height of 100%. If you'd like to have the
dimensions set to the actual content width and height, set preserveDimensions
to true
. An object with
width and height properties can also be used here if you need to define the export size explicitly.
areaβ
An area which should be displayed in the resulting raster image. The value is an object with x
, y
, width
,
and height
properties, describing the origin and size of a rectangular area on the paper in local coordinates.
It defaults to the paper content bounding box - paper.getContentBBox()
transformed into local coordinates.
// Export selected elements only and add a padding
const padding = 20;
toSVG(paper, callback, {
area: graph.getCellsBBox(selection.collection.toArray()).inflate(padding)
});
convertImagesToDataUrisβ
Converts all contained images into Data URI format. It defaults to false
.
useComputedStylesβ
When set to true
, all the styles from external stylesheets are copied to the resulting SVG export. Note
this requires a lot of computations, and it might significantly affect the export time.
/* External stylesheet.css */
.joint-link .connection { fill: none }
.joint-element rect { stroke: red }
When set to false
, no styles from external stylesheets are copied to the resulting SVG export. Using this
option requires you to make sure all the elements and links styling is inlined.
// Store SVG Attributes right on the DOM elements
link.attr('.connection', { fill: 'none' });
element.attr('rect', { stroke: 'red' });
paper.toSVG(paper, callback, { useComputedStyles: false });
stylesheetβ
A stylesheet(as a string) can be provided and appended to the resulting SVG export.
paper.toSVG(callback, {
stylesheet: [
'.joint-link .connection { fill: none }',
'.joint-element rect { stroke: red }'
].join('')
});
It defaults to true
.
beforeSerializeβ
type BeforeSerialize = (doc: SVGSVGElement, paper: dia.Paper) => void | SVGElement;
A function called before the XML serialization. It may be used to modify the exported SVG before it is converted to a string. The function can also return a new SVGDocument.
toSVG(paper, callback, {
beforeSerialize: function(doc) {
// remove all links from the exported XML
Array.from(doc.querySelectorAll('.joint-link')).forEach(function(node) {
node.parentNode.removeChild(node);
});
}
});
fillFormControlsβ
Fill in the values of all form controls (input, select, textarea), so that they are displayed in the export
(form controls can be part of the export if they are inserted via
foreignObject). It defaults to true
.
gridβ
When set to true
, the grid is rendered in the export. It defaults to false
.
Typesβ
SVGExportOptionsβ
interface SVGExportOptions {
preserveDimensions?: boolean;
area?: dia.BBox;
convertImagesToDataUris?: boolean;
useComputedStyles?: boolean;
stylesheet?: string;
grid?: boolean;
beforeSerialize?: BeforeSerialize;
fillFormControls?: boolean;
}