npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fonttools

v1.0.7

Published

Native bindings to `fonttools` to decompile and compile fonts.

Downloads

1,339

Readme

node-fonttools

Native bindings to fonttools to decompile and compile fonts.

How It Works

fonttools (also known as TTX) is a library for manipulating fonts, written in Python. It supports TrueType, OpenType, AFM and to an extent Type 1, and some Mac-specific formats. Using Addons it's possible to bridge Python to Node, natively, using C++ and Python's Python/C API—which is exactly what node-fontools does.

Current Status

So far, the only functions that have been bridged are the abilities to decompile fonts to XML and compile XML to font binary.

Requirements

Python 2.7 is the only supported version at the moment.

How To Use

import fonttools from 'fonttools';
import { readFileSync } from 'fs';

// Get the `decompile` and `compile` methods
const { decompile, compile } = fonttools();

// Read a font file as a buffer
const fontBuffer = readFileSync('font.ttf');

// Decompile the font to another buffer
const fontXMLBuffer = decompile(fontBuffer);

// Insert logic here to manipulate font

// Compile font from an XML file as a buffer
const fontBinaryBuffer = compile(fontXMLBuffer);

// Insert logic to save font file buffer here

fonttools

A function that takes a path to fonttools/Lib and returns an object with two methods: decompile and compile. By default it uses the included submodule.

decompile

Takes a font file buffer and returns another buffer with the XML of the decompiled font.

compile

Takes an XML file buffer and returns another buffer with the compiled font file binary.

More on Node Buffers