Skip to content

javedblch/svg-text-to-vector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

npm install --save svg-text-to-vector

Usage

const svgTextPath = require('svg-text-to-vector');

Load | Save as Files

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

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

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)

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.
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.
{
   "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

About

Converts textfield tags in an SVG file to vector paths.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published