WebFonts generation tool
npm install fontconvert-tool> Helps to convert normal font into WebFont.
#### Installation
This plugin requires FontForge.
ttfautohint is optional(turn it off in config, see below). Tested on ttfautohint version 1.5.
```
brew install ttfautohint fontforge --with-python
npm install fontconvert-tool --save-dev
sudo apt-get install fontforge ttfautohint
npm install fontconvert-tool --save-dev
`$3
`
npm install fontconvert-tool --save-dev
`Then install
ttfautohint (optional).Then install
fontforge.
* Download and install fontforge.
* Add C:\Program Files (x86)\FontForgeBuilds\bin to your PATH environment variable or specify executable
#### Example
`javascript
var fontconvert = require('fontconvert-tool')fontconvert.convertFonts('./fonts-source', './fonts-out')
`
#### Selective subset example
`javascript
var fontconvert = require('fontconvert-tool')fontconvert.convertFonts('./fonts-source', './fonts-out', {
subset: [
'Basic Latin', 'Latin-1 Supplement', // Latin
'Cyrillic Russian', // Cyrillic
'General Punctuation', 'Currency Symbols' // Punctuation
]
})
`API
##### fontconvert.convertFonts(fontsInputDir, fontsOutDir, [config, callback])
Returns a promise.
Config
#### subset
Type:
array
Default: []Array list of out font subsets.
See supported unicode ranges patterns.
##### Example:
`javascript
[
'Basic Latin', 'Latin-1 Supplement', // Latin
'Cyrillic Russian', // Cyrillic
'General Punctuation', 'Currency Symbols' // Punctuation
]
`#### outTypes
Type:
array
Default: ['ttf', 'eot', 'woff', 'woff2'].svg-fonts not supported.
#### autoHint
Type:
boolean
Default: trueUse ttfautohint util to hint fonts.
#### ttfautoHintFallbackScript
Type:
string
Default: latn#### ttfautoHintArgs:
Type:
array
Default: []You can specify ttfautohint arguments
#### woff2NativeConverter
Type:
boolean
Default: trueUse ttf2woff2 native addon. Set it false for using pure js converter in trouble case.
#### fontFileNameFilter
Type:
function(fontFileName, fontFamily, config)You can specify name of out file name by passing filter function
##### Example:
`javascript
function (fileName) {
return 'prefix-' + fileName
}
`#### fontDestinationDirFilter
Type:
function(fontDestDir, fontDestBaseDir, fontDestName, fontFamily, config)You can specify name of fonts out dir by passing filter function.
##### Example:
`javascript
function (dirName) {
return path.join('subdir', dirName)
}
`Specifying executables
If you are using OS X or Linux usually you don't need to specify any paths if FontForge and ttfautohint installed normally.
On Windows you probably have to set paths manually(at least for FontForge).
`javascript
var fontconvert = require('fontconvert-tool')fontconvert.fontForgeBin = 'fontforge'
fontconvert.ttfautohintBin = 'ttfautohint' // example: 'C:\Program Files (x86)\FontForgeBuilds\bin\fontforge.exe'
`Logging
If you are using task manager like
gulp you can specify logging function for pretty out log:`javascript
var fontconvert = require('fontconvert-tool'),
gutil = require('gutil')fontconvert.log = gutil.log.bind(gutil)
``Alex Batalov