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:
- The original project did not include mappings from Unicode to WinAnsi/ZapfDingbats/Symbol encodings.
- 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:
- https://unpkg.com/@pdf-lib/standard-fonts/dist/standard-fonts.js
- https://unpkg.com/@pdf-lib/standard-fonts/dist/standard-fonts.min.js
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
Original Repo's License
Copyright 2015–2018 Christopher Brown. MIT Licensed.