text-svg
Version:
Convert text to SVG for node.js
93 lines (88 loc) • 3 kB
TypeScript
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 };