你们有人试图让svg.js与node.js一起工作吗?我试图使用jsdom模块渲染svg但jsdom但SVG.supported返回false。有没有办法让这个库与node.js一起使用?
提前致谢!
编辑:这是我的代码,我想在Node.js上制作,然后可能以PDF格式或作为png渲染SVG:
var draw = SVG('drawing').size(600, 600)
var image = draw.image('inclusions.png')
image.size(400, 150)
var rect = draw.rect(400, 150).attr({ fill: 'orange' })
for (i = 0; i < 10; i++) {
var point = draw.circle(5)
var xpos = Math.floor((Math.random() * 400) + 1);
var ypos = Math.floor((Math.random() * 150) + 1);
point.x(xpos)
point.y(ypos)
point.fill('black')
}
image.front()
答案 0 :(得分:0)
此链接可能会有所帮助:http://techslides.com/save-svg-as-an-image
这记录了一个客户端解决方案,它导致必需的SVG在最终用户的浏览器上绘制,而不是在服务器上绘制,但它通过将SVG放入图像标记并允许用户使用它来提供您想要的最终结果。下载它。如果保持SVG绘图逻辑的秘密是一个问题,您可以通过在生成器页面上填充PhantomJS并向用户发送它下载的图像来使用类似的原则。
答案 1 :(得分:0)
以下是nodejs项目中svg.js的工作示例用法, svgdom是来自svg.js official website
的建议库const window = require('svgdom');
const SVG = require('svg.js')(window);
const document = window.document;
function generateSVGTextLines(width, height, lineList, tAsset) {
var draw = SVG(document.documentElement).size(width, height);
draw.clear();
draw.text(function (add) {
if (lineList) {
for (var i = 0; i < lineList.length; i++) {
add.tspan(lineList[i].text).attr("x", "50%").newLine();
}
}
}).font({
family: tAsset.fontFamily,
size: tAsset.fontHeight,
leading: '1.2em',
anchor: "middle"
}).move(width / 2, 0);
return draw.svg();
}