UNPKG

truetype2gfx

Version:

Convert TTF, OTF, WOFF to Adafruit GFX header file

98 lines (66 loc) 2.72 kB
# truetype2gfx `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](https://github.com/opentypejs/opentype.js) ## Features - **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. ## Installation Install the package using npm: ```bash npm install truetype2gfx ``` ## Usage ``` // 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); } } ``` ## API ### `truetype2gfx(inputFile, pixelHeight?, format?)` Converts a font file into an Adafruit GFX-compatible font format. #### Parameters - `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) #### Returns 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') ## Debug Tools 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); ``` ## Supported Font Formats Only fixed width fonts (no proper variable fonts support yet). - TrueType (.ttf) - OpenType (.otf) - WOFF (.woff) ## Compatibility The generated font files are compatible with: - AdafruitGFX - TFT_eSPI - many others libs ## License MIT ## Contributing Contributions are welcome! Please feel free to submit a Pull Request.