diff --git a/src/modules/cell.js b/src/modules/cell.js index 797696b19..5d62ccf5f 100644 --- a/src/modules/cell.js +++ b/src/modules/cell.js @@ -193,15 +193,28 @@ import { jsPDF } from "../jspdf.js"; ); } - text = Array.isArray(text) ? text : [text]; + + const maxWidth = options.maxWidth + if (maxWidth > 0){ + if (typeof text === 'string'){ + text = this.splitTextToSize(text, maxWidth) + } else if (Object.prototype.toString.call(text) === "[object Array]") { + text = this.splitTextToSize(text.join(" "), maxWidth) + } + } else { + // Without the else clause, it will not work if you do not pass along maxWidth + text = Array.isArray(text) ? text : [text]; + } + for (var i = 0; i < text.length; i++) { tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize; if (width < tempWidth) { width = tempWidth; } - if (width !== 0) { - amountOfLines = text.length; - } + } + + if (width !== 0) { + amountOfLines = text.length; } width = width / scaleFactor; diff --git a/test/specs/cell.spec.js b/test/specs/cell.spec.js index 01ee2779a..9bb7a4461 100644 --- a/test/specs/cell.spec.js +++ b/test/specs/cell.spec.js @@ -10,16 +10,16 @@ describe("Module: Cell", () => { expect( doc.getTextDimensions(doc.splitTextToSize("Octocat loves jsPDF", 50)).h ).toEqual(71.19999999999999); + expect(doc.getTextDimensions("Octocat loves jsPDF").w).toEqual(144.48000000000002); + expect(doc.getTextDimensions("Octocat loves jsPDF").h).toEqual(16); expect( - doc.getTextDimensions(doc.splitTextToSize("Octocat loves jsPDF", 150)).w + doc.getTextDimensions("Octocat loves jsPDF", { maxWidth: 150}).w ).toEqual(144.48000000000002); expect( - doc.getTextDimensions(doc.splitTextToSize("Octocat loves jsPDF", 150)).h + doc.getTextDimensions("Octocat loves jsPDF", { maxWidth: 150 }).h ).toEqual(16); - expect(doc.getTextDimensions("Octocat loves jsPDF").w).toEqual( - 144.48000000000002 - ); - expect(doc.getTextDimensions("Octocat loves jsPDF").h).toEqual(16); + expect(doc.getTextDimensions("Octocat loves jsPDF", {maxWidth: 100 }).h).toEqual(34.4); + expect(doc.getTextDimensions("Octocat loves jsPDF", {maxWidth: 100 }).w).toEqual(96.64000000000001); expect(doc.getTextDimensions("").w).toEqual(0); expect(doc.getTextDimensions("").h).toEqual(0); expect(doc.getTextDimensions([""]).w).toEqual(0);