truetype2gfx
is a versatile TypeScript library that converts standard font files (TTF, OTF, WOFF) into formats
compatible with Adafruit_GFX. This package is ideal for developers integrating custom fonts into embedded systems using
the Adafruit_GFX or TFT_eSPI library.
Works with opentype.js
- Font Parsing: Supports TrueType Fonts (TTF), OpenType Fonts (OTF), and Web Open Font Format (WOFF).
- Glyph Selection: Automatically extracts basic ASCII glyphs (character codes 32 to 126).
- Font Conversion: Rasterizes vector glyphs into monochrome bitmaps suitable for Adafruit_GFX.
- Customization: Allows specification of desired pixel height for font scaling.
-
Output Formats: Generates output as a
FontPack
, C/C++ header file (.h
), or as a string. - Browser Compatibility: Designed for use as an ES5 module in browsers.
Install the package using npm:
npm install truetype2gfx
// Import the truetype2gfx module
import { truetype2gfx } from 'truetype2gfx';
async function convertFont(file, pixelHeight) {
try {
const output = await truetype2gfx(file, pixelHeight, 'string');
console.log('Conversion successful:', output);
} catch (error) {
console.error('Conversion failed:', error);
}
}
Converts a font file into an Adafruit GFX-compatible font format.
-
inputFile
(File): The input font file (TTF, OTF, or WOFF format) -
pixelHeight
(number, optional): Desired font height in pixels. Defaults to 12. -
format
('file' | 'string' | undefined, optional): Output format-
'file'
: Returns a File object containing the header file -
'string'
: Returns the raw header file content as a string -
undefined
: Returns a FontPack object (default)
-
Promise that resolves to one of:
-
FontPack
: Internal font representation (when format is undefined) -
string
: Header file content (when format is 'string') -
File
: Header file object (when format is 'file')
The library includes a debug canvas renderer for visualizing the converted font:
import { debugCanvas } from 'truetype2gfx';
// Render font preview to a canvas element
debugCanvas(fontPack);
Only fixed width fonts (no proper variable fonts support yet).
- TrueType (.ttf)
- OpenType (.otf)
- WOFF (.woff)
The generated font files are compatible with:
- AdafruitGFX
- TFT_eSPI
- many others libs
MIT
Contributions are welcome! Please feel free to submit a Pull Request.