forked from fex-team/kityminder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsvg.js
56 lines (44 loc) · 2.04 KB
/
svg.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
if (!kity.Browser.ie) {
KityMinder.registerProtocol('svg', function(minder) {
return {
fileDescription: 'SVG 矢量图',
fileExtension: '.svg',
mineType: 'image/svg+xml',
dataType: 'text',
encode: function(json) {
var paper = minder.getPaper(),
paperTransform = paper.shapeNode.getAttribute('transform'),
svgXml,
$svg,
renderContainer = minder.getRenderContainer(),
renderBox = renderContainer.getRenderBox(),
transform = renderContainer.getTransform(),
width = renderBox.width,
height = renderBox.height,
padding = 20;
paper.shapeNode.setAttribute('transform', 'translate(0.5, 0.5)');
svgXml = paper.container.innerHTML;
paper.shapeNode.setAttribute('transform', paperTransform);
$svg = $(svgXml).filter('svg');
$svg.attr({
width: width + padding * 2 | 0,
height: height + padding * 2 | 0,
style: 'font-family: Arial, "Microsoft Yahei", "Heiti SC"; background: ' + minder.getStyle('background')
});
$svg[0].setAttribute('viewBox', [renderBox.x - padding | 0,
renderBox.y - padding | 0,
width + padding * 2 | 0,
height + padding * 2 | 0
].join(' '));
// need a xml with width and height
svgXml = $('<div></div>').append($svg).html();
svgXml = $('<div></div>').append($svg).html();
// svg 含有 符号导出报错 Entity 'nbsp' not defined
svgXml = svgXml.replace(/ /g, ' ');
// svg 含有 符号导出报错 Entity 'nbsp' not defined
return svgXml;
},
recognizePriority: -1
};
});
}