Détail du package

fontfacegen

dotcore64726MIT0.5.1

Browser font-face generator for creating browser usable fonts from ttf's or otf's

font-face, fontface, font, face

readme

fontfacegen

Build Status npm package Coverage Status

From a ttf or otf, generate the required ttf, eot, woff, svg and css for the font to be used in browsers.

Installing

npm install --save-dev fontfacegen

Requirements:

Installing fontforge

On MacOS:

brew install fontforge

On Ubuntu:

apt install fontforge

On other platforms, please refer to the fontforge documentation.

Usage:

var fontfacegen = require('fontfacegen');

var result = fontfacegen({
    source: '/path/to/source.{ttf,otf}',
    dest: '/destination/folder/',
});

Options:

source (required):

Path to the source font file in ttf or otf format.

dest (required):

Path to the destination folder for the converted fonts to be placed in.

css:

Path to the destination file to write the generated stylesheet to.

Default: null (Guess the css filename from the font filename)

css_fontpath:

Path to the font files relative to the css generated.

Default: ''

subset:

A string or array with the characters desired to be included inside the generated fonts

Default: null

collate:

Append the source filename to the destination directory in order to collate generated fonts into separate directories.

Default: false

IE:

options = {
    source: 'src/fonts/ariel.ttf',
    dest: 'dist/fonts/',
    collate: true
}

Will create fonts into 'dist/fonts/ariel/'.

embed:

Type: array Default: [] Valid values: ['woff', 'ttf']

Type of fonts to embed directly into the generated css file as a data-uri instead of creating files for them.

Font config files:

Font name, style and weight can be specified manually per font in a json file of the same name as the font.

For example, for the font: fonts/sans.ttf the config file would be: fonts/sans.json.

Example file format:

{
    "name"   : "Super Sans",
    "weight" : "400",
    "style"  : "normal"
}

Note: If present, the json config file must be valid json.

Complete example:

var fs          = require('fs');
var path        = require('path');
var fontfacegen = require('./fontfacegen');

var source = 'tmp/';
var dest   = 'tmp/dest/';
var fonts  = fs.readdirSync(source);

for (var i = fonts.length - 1; i >= 0; i--) {
    var font = fonts[i];
    var extension = path.extname(font);
    var fontname = path.basename(font, extension);

    // Test with embedded ttf
    if (extension == '.ttf' || extension == '.otf') {
        fontfacegen({
            source: path.join(source, font),
            dest: dest,
            css_fontpath: '../fonts/',
            embed: ['ttf'],
            subset: 'abcdef',
            collate: true
        });
    }
};

License

See the LICENSE file for license rights and limitations (MIT).

changelog

Changelog

Breaking / Enhancements / Bug Fixes

1.0.0 (unreleased)

  • Convert to esm module

0.5.1

  • fix build badge

0.5.0

  • Drop support for node < 14
  • Upgrade all dependencies
  • Move to dotcore64 org

0.4.0

  • Drop support for node < 8
  • Add support for node 12
  • Upgrade all dependencies

0.3.1

  • Fixed a publishing issue where the lib folder was missing in the NPM package.

0.3.0

  • Fixed an issue where if this library was called on top of the same CSS file, it would replace the content. Now it will append it.
  • Bump ttf2svg to 1.1.0

0.2.1

Enhancements

0.2.0

Enhancements
Bug Fixes