function ESC(s) {
      s = s.split("\t").join(Array(options.TabLen || 9).join(" "));
      return pdfEscape(s, flags);
    }
Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.

@function
@instance
@param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.
@param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.
@param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.
@param {Object} [options] - Collection of settings signaling how the text must be encoded.
@param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.
@param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging
@param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.
@param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.
@param {number} [options.charSpace=0] - The space between each letter.
@param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.
@param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.
@param {Object} [options.flags] - Flags for to8bitStream.
@param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.
@param {boolean} [options.flags.autoencode=true] - Autoencode the Text.
@param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.
@param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.
@param {boolean} [options.isInputVisual] - Option for the BidiEngine
@param {boolean} [options.isOutputVisual] - Option for the BidiEngine
@param {boolean} [options.isInputRtl] - Option for the BidiEngine
@param {boolean} [options.isOutputRtl] - Option for the BidiEngine
@param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine
@param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.

If it is a Matrix, this matrix gets directly applied to the text, which allows shearing
effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this
matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a
DIFFERENT result. A matrix is only allowed in "advanced" API mode.
@returns {jsPDF}
@memberof jsPDF#
@name text