UNPKG

svg-text-to-vector

Version:

Converts textfield tags in an SVG file to vector paths.

140 lines (89 loc) 3.98 kB
# SVG Text to Vector > ### A powerful tool for runtime text to vector conversion of complex SVG files. ## Features: **- Supported Tags:** 'text | tspan'. **- Attributes:** Supports all major attributes including x, y, dx, dy, opacity, stroke, transform, class-based styling etc. **- Colors:** Supports Solid Fill, Linear and Radial Gradients. **- Dynamic Font Handling:** Offers dynamic runtime addition of fonts to its native config/fonts.json file. ## Installation ```bash npm install --save svg-text-to-vector ``` ## Usage ```bash const ConvertToPath = require('svg-text-to-vector'); ``` ### Load | Save as Files ```javascript var svgTextPath = require('svg-text-to-vector'); var options={ load:'file.svg', save:'file-convert.svg' } const convert = await svgTextPath.getPath(options); ``` ### Load | Save as Buffer ```javascript var svg = fs.readFileSync('./public/file.svg'); svg=Buffer.from(svg); var options={ load:svg, save:'buffer' } const convert = await ConvertToPath.getPath(options); ``` ### Load | Save as Base64 ```javascript var svg = fs.readFileSync('./public/file.svg','base64'); var options={ load:svg, save:'base64' } const convert = await ConvertToPath.getPath(options); ``` ### Load | Save as SVG String (utf-8) ```javascript var svg = fs.readFileSync('./public/file.svg',{encoding:'utf8'}); var options={ load:svg, save:'utf8' | 'utf-8' } const convert = await ConvertToPath.getPath(options); ``` ## Fonts Handling - All dynamically added & built-in font names & paths load from **svg-text-to-vector/config/fonts.json** file ### Dynamically Add Fonts - Dynamically add fonts with json key & value pair {�name�, �path�}. Each font needs to be added one time only for all future purposes. ```javascript var font={"name":"Lexend Tera","path": "/lexend_tera.ttf"}; const addFonts = await ConvertToPath.push(font); ``` ### Add Fonts Manually - Open **svg-text-to-vector/config/fonts.json** and simply add more fonts. ```javascript { "font":[ { "name":"Times New Roman", "path":"./public/fonts/times.ttf" }, { "name":"Anton", "path":"./public/fonts/anton.ttf" } ] } ``` ## API ## Options Params |                                                                              Data Type                                                    | Description --- | --- | --- **options.load** | {String - Buffer - Base64 - UTF-8} | Contains SVG object that needs to be converted. Loads from a **Local Directory** or from type **Buffer** - **Base64** - **SVG String** **options.save** | {String} | Returns the convert to path SVG object. Saves to a **Local Directory** or returns type **Buffer** - **Base64** - **SVG String** **options.font** | {String} | **Optional** - Param for default font. Applicable if unable to find the relevant font. Default is **Times New Roman** **options.fontPath** | {String} | **Optional** - Param for default font path. Applicable if unable to find relevant fonts and **options.font** param is defined. Default is **svg-text-to-vector/config/fonts/times.ttf** **options.fontSize** | {Number} | **Optional** - Param for default font size. Applicable if no font size is defined within SVG text tag. Default is **16** # Performance & Compatibility The package ensures fast and efficient performance and is fully compatible with all the popular Node.js frameworks. # License MIT