diff --git a/src/jspdf.js b/src/jspdf.js index 91faf595b..9beffd670 100644 --- a/src/jspdf.js +++ b/src/jspdf.js @@ -3155,6 +3155,28 @@ var jsPDF = (function (global) { return this; }; + var miterLimit; + /** + * Sets the miterLimit property, which effects the maximum miter length. + * + * @param {number} length The length of the miter + * @function + * @instance + * @returns {jsPDF} + * @memberOf jsPDF + * @name setMiterLimit + */ + var setMiterLimit = API.__private__.setMiterLimit = API.setMiterLimit = function (length) { + length = length || 0; + if (isNaN(length)) { + throw new Error('Invalid argument passed to jsPDF.setMiterLimit'); + } + miterLimit = parseFloat(f2(length * k)); + out(miterLimit + ' M'); + + return this; + }; + /** * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf'). * Uses FileSaver.js-method saveAs. diff --git a/src/modules/context2d.js b/src/modules/context2d.js index 1a8e3c165..1ee587fc2 100644 --- a/src/modules/context2d.js +++ b/src/modules/context2d.js @@ -352,6 +352,7 @@ set: function (value) { if (!isNaN(value)) { this.ctx.miterLimit = value; + this.pdf.setMiterLimit(value); } } }); diff --git a/tests/context2d/reference/bar_graph_with_text_and_lines.pdf b/tests/context2d/reference/bar_graph_with_text_and_lines.pdf index 9a8f38580..7af6b2133 100644 Binary files a/tests/context2d/reference/bar_graph_with_text_and_lines.pdf and b/tests/context2d/reference/bar_graph_with_text_and_lines.pdf differ diff --git a/tests/init/jspdf.unit.spec.js b/tests/init/jspdf.unit.spec.js index 776d41043..c82904e49 100644 --- a/tests/init/jspdf.unit.spec.js +++ b/tests/init/jspdf.unit.spec.js @@ -1171,6 +1171,19 @@ break`, 10, 10, {scope: doc}); }) + it('jsPDF private function setMiterLimit', () => { + var doc = jsPDF(); + + var writeArray; + + //miter/butt + doc = jsPDF(); + writeArray = []; + doc.__private__.setCustomOutputDestination(writeArray); + doc.__private__.setMiterLimit(1); + expect(writeArray).toEqual(['2.83 M']); + expect(function() {doc.__private__.setMiterLimit('invalid');}).toThrow(new Error('Invalid argument passed to jsPDF.setMiterLimit')); + }) it('jsPDF private function putHeader', () => { var doc = jsPDF();