使用jsPDF绘制SVG Bezier曲线的麻烦

时间:2014-03-05 16:02:06

标签: svg bezier jspdf

我有一个在SVG中定义的Bezier曲线,我想用jsPDF绘制。我无法使用jsPDF正确渲染曲线。 如何使用jsPDF绘制下面SVG中定义的Bezier曲线?

SVG中的曲线:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="192" version="1.1" height="288">
    <path fill="black" stroke="black" d="M19.0544,25.8288C24.2384,43.2816,22.3952,46.9968,18.7376,50.510400000000004" stroke-width="0" font=" 10pt Arial"></path>
</svg>

我使用jsPDF尝试曲线:

var doc = new jsPDF();
doc.lines([[24.2384, 43.2816, 22.3952, 46.9968, 18.7376, 50.5104]], null, null, [1, 1], 'FD');

渲染时SVG产生的内容(左)和我的jsPDF代码产生的内容(右):

enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

我没有看到您的代码中反映的初始移动。根据我对文档的阅读,这不应该更像是以下内容吗?

var doc = new jsPDF();
doc.lines([[24.2384, 43.2816, 22.3952, 46.9968, 18.7376, 50.5104]], 19.0544,25.8288, [1, 1]);

<强>更新

没有注意到文档说coords是相对的(感谢Pomax),所以试试吧。

var doc = new jsPDF();
var x = 19.0544;
var y = 25.8288;
doc.lines([[24.2384-x, 43.2816-y, 22.3952-x, 46.9968-y, 18.7376-x, 50.5104-y]], x,y, [1, 1]);