@pdf-lib/standard-fonts

Metrics for the Standard 14 PDF fonts and their encodings

Usage no npm install needed!

<script type="module">
  import pdfLibStandardFonts from 'https://cdn.skypack.dev/@pdf-lib/standard-fonts';
</script>

README

standard-fonts
NPM Version Prettier Badge

Collection of metrics and encodings for the standard 14 PDF fonts

This project is a fork of afm and was created for use in pdf-lib. This forks exists for two primary reasons:

  1. The original project did not include mappings from Unicode to WinAnsi/ZapfDingbats/Symbol encodings.
  2. The font metrics included in the original project were uncompressed (not ideal for usage in pdf-lib).

Usage

import { Font, FontNames, Encodings } from '@pdf-lib/standard-fonts';

const codePoint = '∑'.charCodeAt(0);

const glyph = Encodings.Symbol.encodeUnicodeCodePoint(codePoint);
glyph // => { code: 229, name: 'summation' }

const font = Font.load(FontNames.Symbol);
const width = font.getWidthOfGlyph(glyph.name);
width // => 713

Installation

NPM Module

To install the latest stable version:

# With npm
npm install --save @pdf-lib/standard-fonts

# With yarn
yarn add @pdf-lib/standard-fonts

This assumes you're using npm or yarn as your package manager.

UMD Module

You can also download @pdf-lib/standard-fonts as a UMD module from unpkg. The UMD builds have been compiled to ES5, so they should work in any modern browser. UMD builds are useful if you aren't using a package manager or module bundler. For example, you can use them directly in the <script> tag of an HTML page.

The following builds are available:

When using a UMD build, you will have access to a global window.StandardFonts variable. This variable contains the classes and enums exported by @pdf-lib/standard-fonts. For example:

// NPM module
import { Font, FontNames, Encodings } from '@pdf-lib/standard-fonts';
const font = Font.load(FontNames.HelveticaBold);
const encoding = Encodings.WinAnsi;

// UMD module
var font = StandardFonts.Font.load(StandardFonts.FontNames.HelveticaBold);
var encoding = StandardFonts.Encodings.WinAnsi;

License

MIT

Original Repo's License

Copyright 2015–2018 Christopher Brown. MIT Licensed.