Skip to content

Latest commit

 

History

History
74 lines (60 loc) · 1.55 KB

quick-start.md

File metadata and controls

74 lines (60 loc) · 1.55 KB

Quick Start

{% hint style="info" %} This documentation for fontkit is created and provided by the Typogram team. It’s a third-party documentation intended to delve deeper into the fontkit API. For the most accurate information, refer to fontkit’s official documentation. {% endhint %}

Installation

Install via NPM:

npm install fontkit

Load a font

{% tabs %} {% tab title="ES6 (Browser)" %}

import * as fontkit from 'fontkit';

async function loadFont(url) {
  const response = await fetch(url);
  const arrayBuffer = await response.arrayBuffer();
  const buf = new Uint8Array(arrayBuffer);
  const font = fontkit.create(buf);
  console.log(font)
}

{% endtab %}

{% tab title="Node.js" %}

var fontkit = require('fontkit');

// open a font synchronously
var font = fontkit.openSync('font.ttf');

{% endtab %} {% endtabs %}

Layout a line of text

const run = font.layout('Hello World!');
const run = font.layout('Hello World!', {
  dlig: true,
  swsh: false,
  pcap: false
});

Get pathData of a GlyphRun

let pathData = '';
let x = 0;
let y = 0;
run.glyphs.forEach((glyph, index) => {
  const position = run.positions[index];
  if (glyph.path) {
    pathData += glyph.path
      .scale(1, -1)
      .translate(x + position.xOffset, y + position.yOffset)
      .toSVG();
    x += position.xAdvance;
    y += position.yAdvance;
  }
});
console.log(pathData);