UNPKG

export-kerning

Version:
101 lines (71 loc) 2.35 kB
# export-kerning 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) }); ``` ### CLI Usage You can also use the tool from command line: #### Using npx (recommended) ```bash npx export-kerning <font-file> [options] ``` #### Using node directly ```bash node index.js <font-file> [options] ``` #### 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 } ] } ``` ## License ISC