UNPKG

text-svg

Version:

Convert text to SVG for node.js

93 lines (88 loc) 3 kB
import { Readable } from 'stream'; interface TextSvgOptions { font?: string textAlign?: 'left' | 'center' | 'right' | 'start' | 'end' color?: string textColor?: string backgroundColor?: string bgColor?: string lineSpacing?: number strokeWidth?: number strokeColor?: string padding?: number paddingLeft?: number paddingTop?: number paddingRight?: number paddingBottom?: number borderWidth?: number borderLeftWidth?: number borderTopWidth?: number borderRightWidth?: number borderBottomWidth?: number borderColor?: string localFontPath?: string localFontName?: string maxWidth?: number wrap?: boolean output?: 'buffer' | 'stream' | 'dataURL' | 'canvas' width?: number height?: number } interface ParsedOptions { font: string textAlign: 'left' | 'center' | 'right' | 'start' | 'end' textColor: string backgroundColor: string | null lineSpacing: number strokeWidth: number strokeColor: string paddingLeft: number paddingTop: number paddingRight: number paddingBottom: number borderLeftWidth: number borderTopWidth: number borderRightWidth: number borderBottomWidth: number borderColor: string localFontName: string | null localFontPath: string | null wrap: boolean maxWidth: number | undefined output: 'buffer' | 'stream' | 'dataURL' | 'canvas' width: number | undefined height: number | undefined } /** * Convert text to SVG image. * @param text * @param [options] * @param [options.font="30px sans-serif"] css style font * @param [options.textAlign="left"] text alignment (left, center, right) * @param [options.color="black"] (or options.textColor) text color * @param [options.backgroundColor] (or options.bgColor) background color * @param [options.lineSpacing=0] * @param [options.strokeWidth=0] * @param [options.strokeColor='white'] * @param [options.padding=0] width of the padding area (left, top, right, bottom) * @param [options.paddingLeft] * @param [options.paddingTop] * @param [options.paddingRight] * @param [options.paddingBottom] * @param [options.borderWidth=0] width of border (left, top, right, bottom) * @param [options.borderLeftWidth=0] * @param [options.borderTopWidth=0] * @param [options.borderRightWidth=0] * @param [options.borderBottomWidth=0] * @param [options.borderColor="black"] border color * @param [options.localFontPath] path to local font (e.g. fonts/Lobster-Regular.ttf) * @param [options.localFontName] name of local font (e.g. Lobster) * @param [options.maxWidth] maximum width of text * @param [options.wrap] whether text should be wrapped when it exceeds max width * @param [options.output="buffer"] 'buffer', 'stream', 'dataURL', 'canvas's * @param [options.width] * @param [options.height] * @returns {string} svg image buffer */ declare const text2svg: (text: string, inputOptions?: TextSvgOptions) => Buffer | Readable | string | any; export { type ParsedOptions, type TextSvgOptions, text2svg as default, text2svg };