我需要"阅读" nodejs中的一些paperjs路径的数组并获取它们的维度。我想使用纸质npm模块,但发现它依赖于 Cairo 。
当我部署到heroku时,使用Cairo有点困难。我知道它可能但我想知道它是否真的有必要只是为了阅读"路径组的维度。
答案 0 :(得分:0)
当今的答案:
是的,这是可能的。
——
<块引用>Paper.js 在 NPM 上有三个不同的版本:paper、paper-jsdom 和 paper-jsdom-canvas。根据您的用例,您需要不同的:
→ 如果您不需要渲染到画布,paper-jsdom 应该可以解决问题(不需要 Cairo)
——
重要提示:
如果我理解正确,这意味着您不能使用 PaperScript,而必须直接使用 JavaScript。
这将影响您编写代码的方式:
new paper.Path()
而不是 new Path()paper.setup()
手动创建项目——
创建一条线、记录其边界框大小(并导出 SVG)的简单示例:
注意:我在当前的 Node LTS (v14.16.1) 中使用了它
package.json
{
"name": "paper-jsdom-example",
"main": "index.js",
"dependencies": {
"paper-jsdom": "^0.12.15"
}
}
index.js
const paper = require('paper');
const fs = require('fs');
var size = new paper.Size(300, 300)
paper.setup(size);
var path = new paper.Path();
path.strokeColor = '#348BF0';
var start = new paper.Point(100, 100);
var end = new paper.Point(200, 200);
path.moveTo(start);
path.lineTo(end);
console.log('width', path.bounds.width, 'height', path.bounds.height);
var svg = paper.project.exportSVG({asString:true});
fs.writeFileSync('punchline.svg', svg);