彩票走势图

流程图控件GoJS教程:如何制作SVG(二)

翻译|行业资讯|编辑:杨鹏连|2020-09-29 09:35:29.067|阅读 263 次

概述:GoJS具有创建SVG一个功能:Diagram.makeSvg,它返回一个新SVGElement与GoJS图的表示。该方法有一个参数,一个JavaScript对象,其中包含几个可定义的属性,在文档中进行了枚举。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。

点击下载GoJS最新版

零件选项允许我们指定要绘制的零件的可迭代集合。如果您只想制作图的一部分的图像,例如选择节点,这将很有用。

  myPartsList = new go.List();
  myPartsList.add(myDiagram.findNodeForKey("Beta"));
  myPartsList.add(myDiagram.findNodeForKey("Delta"));
myDiagram.makeSvg({
  parts: myPartsList
});
流程图控件GoJS教程:如何制作SVG(二)
或仅绘制链接:
myDiagram.makeSvg({
  parts: myDiagram.links
});
流程图控件GoJS教程:如何制作SVG(二)
同时设置缩放比例和尺寸将创建一个图像,该图像将被专门缩放并裁剪为给定的尺寸,如下图所示。
myDiagram.makeSvg({
  scale: 1.5,
  size: new go.Size(100,100)
});
流程图控件GoJS教程:如何制作SVG(二)

我们可能需要一个非常大的,缩放后的图像,该图像的大小受到限制,我们可以使用maxSize属性来限制一个或两个尺寸。下图应用了非常大的比例,但水平尺寸受到限制,因此将发生一些水平裁剪。

maxSize的默认值为go.Size(2000, 2000),并且指定go.Size(600, NaN)等效于指定go.Size(600, 2000)。如果我们不想在高度上裁剪,我们可以写go.Size(600, Infinity)。
myDiagram.makeSvg({
   scale:9,
   maxSize:new go.Size(600,NaN)
});
流程图控件GoJS教程:如何制作SVG(二)
同时设置位置和大小会创建一个图表图像,该图像专门定位并裁剪为给定的大小。设置位置但未设置比例尺时,比例尺默认为1。
myDiagram.makeSvg({
  position: new go.Point(20,20),
  size: new go.Size(50,50)
});

流程图控件GoJS教程:如何制作SVG(二)

将背景设置为CSS颜色字符串将用给定的颜色替换透明的Diagram背景。

myDiagram.makeSvg({
   size:new go.Size(NaN,250),
   background:“ rgba(  0,255,0,0.5 )” //半透明的绿色背景
});
流程图控件GoJS教程:如何制作SVG(二)
在下面的代码中,我们使用文档边界将图分成四个相等的部分,从而在每个部分中制作出四个图像。这样,我们可以准备用于分页,制作图库或打印的图像。创建的四个图像如下所示。
    var d = myDiagram.documentBounds;
    var halfWidth = d.width / 2;
    var halfHeight = d.height / 2;
    svg = myDiagram.makeSvg({
            position: new go.Point(d.x, d.y),
            size: new go.Size(halfWidth,halfHeight)
          });
    addSVG(svg); // Adds the SVG to a DIV below

    svg = myDiagram.makeSvg({
            position: new go.Point(d.x + halfWidth, d.y),
            size: new go.Size(halfWidth,halfHeight)
          });
    addSVG(svg);

    svg = myDiagram.makeSvg({
            position: new go.Point(d.x, d.y+ halfHeight),
            size: new go.Size(halfWidth,halfHeight)
          });
    addSVG(svg);

    svg = myDiagram.makeSvg({
            position: new go.Point(d.x + halfWidth, d.y + halfHeight),
            size: new go.Size(halfWidth,halfHeight)
          });
    addSVG(svg);
流程图控件GoJS教程:如何制作SVG(二)
通过将SVG附加到新页面的DOM中,可以在新窗口中打开它:
var button = document.getElementById('openSVG');
button.addEventListener('click', function() {
  var newWindow = window.open("","newWindow");
  if (!newWindow) return;
  var newDocument = newWindow.document;
  var svg = myDiagram.makeSvg({
    document: newDocument,  // create SVG DOM in new document context
    scale: 9,
    maxSize: new go.Size(600, NaN)
  });
  newDocument.body.appendChild(svg);
}, false);

下载SVG文件

如果您希望用户下载SVG文件,则无需涉及Web服务器。请参阅样本。请注意,该示例仅下载一个SVG文件,但是该文件可以覆盖整个文档。


想要购买GoJS正版授权,或了解更多产品信息请点击


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP