Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
The svg2ttf npm package is a tool that converts SVG (Scalable Vector Graphics) fonts to TTF (TrueType Font) format. This is useful for developers who need to use custom fonts in their web or mobile applications and want to ensure compatibility across different platforms.
Convert SVG to TTF
This feature allows you to convert an SVG font file to a TTF font file. The code reads an SVG file, converts it to TTF format, and then writes the TTF file to the specified path.
const svg2ttf = require('svg2ttf');
const fs = require('fs');
const svgFont = fs.readFileSync('path/to/font.svg', 'utf8');
const ttf = svg2ttf(svgFont, {});
fs.writeFileSync('path/to/font.ttf', Buffer.from(ttf.buffer));
Fontkit is a comprehensive font library that supports various font formats including TrueType, OpenType, WOFF, and WOFF2. Unlike svg2ttf, which focuses solely on converting SVG to TTF, Fontkit provides a broader range of functionalities such as font subsetting, glyph manipulation, and font metrics extraction.
Opentype.js is a JavaScript library for parsing and writing OpenType and TrueType fonts. It allows for more detailed manipulation of font data compared to svg2ttf, which is primarily focused on conversion. Opentype.js can be used to create, modify, and export font files in various formats.
The ttf2woff package is used to convert TTF fonts to WOFF (Web Open Font Format). While it serves a different purpose than svg2ttf, it is similar in that it focuses on converting font formats to ensure compatibility across different platforms and browsers.
Converts SVG fonts to TTF format. It was initially written for Fontello, but you can find it useful for your projects.
For developpers:
Internal API is similar to FontForge's one. Since primary goal is generating iconic fonts, sources can lack some specific TTF/OTF features, like kerning and so on. Anyway, current code is a good base for development, because it will save you tons of hours to implement correct writing & optimizing TTF tables.
Install:
npm install -g svg2ttf
Usage example:
svg2ttf fontello.svg fontello.ttf
svgFontString
- SVG font contentoptions
copyright
- copyright string (optional)description
- description string (optional)ts
- Unix timestamp (in seconds) to override creation time (optional)url
- manufacturer url (optional)version
- font version string, can be Version x.y
or x.y
.buf
- internal byte buffer
object, similar to DataView. It's buffer
property is Uin8Array
or Array
with ttf content.Example:
var fs = require('fs');
var svg2ttf = require('svg2ttf');
var ttf = svg2ttf(fs.readFileSync('myfont.svg', 'utf8'), {});
fs.writeFileSync('myfont.ttf', new Buffer(ttf.buffer));
Available as part of the Tidelift Subscription.
The maintainers of svg2ttf
and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.
FAQs
Converts SVG font to TTF font
The npm package svg2ttf receives a total of 114,110 weekly downloads. As such, svg2ttf popularity was classified as popular.
We found that svg2ttf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.