@pdfa-lab/fontkit / Glyph
Abstract Class: Glyph ​
Defined in: src/glyph/glyph.ts:109
Glyph objects represent a glyph in the font. They have various properties for accessing metrics and the actual vector path the glyph represents, and methods for rendering the glyph to a graphics context.
You do not create glyph objects directly. They are created by various methods on the font object. There are several subclasses of the base Glyph class internally that may be returned depending on the font format, but they all inherit from this class.
Extended by ​
Constructors ​
Constructor ​
new Glyph(
id,codePoints,font):Glyph
Defined in: src/glyph/glyph.ts:132
An array of unicode code points that are represented by this glyph. There can be multiple code points in the case of ligatures and other glyphs that represent multiple visual characters.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
id | number | the glyph id in the font. |
codePoints | readonly number[] | the array of Unicode code points. |
font | TrueTypeSubsetFont | OpenTypeFont | the font containing the glyph |
Returns ​
Glyph
Properties ​
| Property | Modifier | Type | Defined in |
|---|---|---|---|
_metrics? | protected | GlyphLayoutMetrics | src/glyph/glyph.ts:116 |
codePoints | readonly | readonly number[] | src/glyph/glyph.ts:111 |
font | readonly | TrueTypeSubsetFont | OpenTypeFont | src/glyph/glyph.ts:112 |
id | readonly | number | src/glyph/glyph.ts:110 |
isLigature | readonly | boolean | src/glyph/glyph.ts:114 |
isMark | readonly | boolean | src/glyph/glyph.ts:113 |
Accessors ​
advanceHeight ​
Get Signature ​
get advanceHeight():
number
Defined in: src/glyph/glyph.ts:301
The glyph's advance height.
Returns ​
number
advanceWidth ​
Get Signature ​
get advanceWidth():
number
Defined in: src/glyph/glyph.ts:290
The glyph's advance width.
Returns ​
number
bbox ​
Get Signature ​
get bbox():
Readonly<BoundingBox>
Defined in: src/glyph/glyph.ts:257
The glyph’s bounding box, i.e. the rectangle that encloses the glyph outline as tightly as possible.
Returns ​
Readonly<BoundingBox>
cbox ​
Get Signature ​
get cbox():
Readonly<BoundingBox>
Defined in: src/glyph/glyph.ts:245
The glyph’s control box. This is often the same as the bounding box, but is faster to compute. Because of the way bezier curves are defined, some of the control points can be outside of the bounding box. Where bbox takes this into account, cbox does not. Thus, cbox is less accurate, but faster to compute. See here for a more detailed description.
Returns ​
Readonly<BoundingBox>
name ​
Get Signature ​
get name():
string|null
Defined in: src/glyph/glyph.ts:359
The glyph's name.
Returns ​
string | null
path ​
Get Signature ​
get path():
Readonly<Path>
Defined in: src/glyph/glyph.ts:269
A vector Path object representing the glyph outline.
Returns ​
Readonly<Path>
Methods ​
getBBox() ​
protectedgetBBox():Readonly<BoundingBox>
Defined in: src/glyph/glyph.ts:157
Returns ​
Readonly<BoundingBox>
getCBox() ​
protectedgetCBox(_?):Readonly<BoundingBox>
Defined in: src/glyph/glyph.ts:153
Parameters ​
| Parameter | Type |
|---|---|
_? | boolean |
Returns ​
Readonly<BoundingBox>
getName() ​
protectedgetName():string|null
Defined in: src/glyph/glyph.ts:309
Returns ​
string | null
getScaledPath() ​
getScaledPath(
size):Path
Defined in: src/glyph/glyph.ts:282
Returns a path scaled to the given font size.
Parameters ​
| Parameter | Type |
|---|---|
size | number |
Returns ​
render() ​
render(
ctx,size):void
Defined in: src/glyph/glyph.ts:384
Renders the glyph to the given graphics context, at the specified font size.
The rendering context ctx should actually be an instance of pdfkit. However, for regular glyphs, you can also pass an HTML5 CanvasRenderingContext2D or one of the implementations for Node.js, like canvas, although you have to cast this, when using TypeScript.
Unfortunately, this will crash, for colour glyphs, see https://github.com/gflohr/pdfa-lab/issues/105.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
ctx | FontkitCanvas | the FontkitCanvas |
size | number | the font size in points |
Returns ​
void