export-kerning
Version:
Exports the kerning of an OpenType font
101 lines (71 loc) • 2.35 kB
Markdown
Exports the kerning of an OpenType font (ttf, otf and woff)
## Installation
```bash
npm install
```
## Usage
### Programmatic Usage
```bash
npm install export-kerning opentype.js
```
```javascript
import opentype from "opentype.js";
import { exportKerning } from "export-kerning";
const font = await opentype.load("path/to/font.ttf");
// Export all kerning pairs
const result = exportKerning(font);
// With options
const result = exportKerning(font, {
ranges: "U+0020-007E", // Unicode ranges (optional)
text: "Sample text", // Generate subset (optional)
});
```
You can also use the tool from command line:
```bash
npx export-kerning <font-file> [options]
```
```bash
node index.js <font-file> [options]
```
- `-o, --output <file>` - Output file path (default: "kerning.json")
- `-t, --text <text>` - Text to analyze for kerning pairs
- `-r, --ranges <ranges>` - Unicode ranges to analyze
- `-h, --help` - Display help information
#### Examples
Export kerning to JSON:
```bash
npx export-kerning LibreBaskerville.ttf
```
Optimized export with ranges :
```bash
npx export-kerning LibreBaskerville.ttf -r U+0020-007E
```
Optimized export with text :
```bash
npx export-kerning LibreBaskerville.ttf -t "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
```
## Export / optimized format
```
{
"unitsPerEm": 1000,
"kerningPairs": [
{ "left": ["f"], "right": ["í", "ı"], "value": 1 },
{ "left": ["ď", "ĩ", "ľ", "ť"], "right": ["ß"], "value": 1 },
{ "left": ["ff"], "right": ["í", "ı", "ȷ"], "value": 1 },
{ "left": ["ĩ"], "right": ["]"], "value": 4 },
{ "left": ["("], "right": ["W", "Ŵ", "Ẁ", "Ẃ", "Ẅ"], "value": 5 },
{
"left": ["U", "Ù", "Ú", "Û", "Ü", "Ũ", "Ū", "Ŭ", "Ů", "Ű", "Ų", "Ụ"],
"right": ["b", "þ"],
"value": 5
}
]
}
```
ISC