phpdftk API Documentation

OpenTypeData extends FontFaceData
in package

Read onlyYes

Parsed OpenType CFF font data — metrics, glyph widths, and raw CFF bytes.

Mirrors TrueTypeData but adds the CFF table bytes and stores the full raw font file for potential whole-file embedding. Both extend FontFaceData so consumers that don't care about the outline format (Shaper, FontResolver, layout) can take the base type, and the PdfWriter dispatches CFF vs glyf embedding via instanceof.

Table of Contents

Properties

$ascent  : int
$capHeight  : int
$cffBytes  : string
$charWidths  : array<string|int, mixed>
$descent  : int
$embeddingAllowed  : bool
$familyName  : string
$flags  : int
$fontBBox  : array<string|int, mixed>
$fontBytes  : string
$fullUnicodeToGid  : array<string|int, mixed>
$glyphWidths  : array<string|int, mixed>
$italicAngle  : float
$kernPairs  : array<string|int, mixed>|null
$ligatures  : array<string|int, mixed>|null
$mathTable  : MathTableData|null
$postScriptName  : string
$stemV  : int
$underlinePosition  : int|null
$underlineThickness  : int|null
$unicodeMap  : array<string|int, mixed>
$unitsPerEm  : int
$verticalWidths  : array<string|int, mixed>|null
$xHeight  : int

Methods

__construct()  : mixed

Properties

$fullUnicodeToGid

public array<string|int, mixed> $fullUnicodeToGid = []

$glyphWidths

public array<string|int, mixed> $glyphWidths = []

$kernPairs

public array<string|int, mixed>|null $kernPairs = null

$ligatures

public array<string|int, mixed>|null $ligatures = null

$underlinePosition

public int|null $underlinePosition = null

$underlineThickness

public int|null $underlineThickness = null

$verticalWidths

public array<string|int, mixed>|null $verticalWidths = null

Methods

__construct()

public __construct(string $postScriptName, string $familyName, int $ascent, int $descent, int $capHeight, int $xHeight, float $italicAngle, int $stemV, int $flags, array<int, int> $fontBBox, array<int, int> $charWidths, array<int, int> $unicodeMap, string $cffBytes, string $fontBytes, bool $embeddingAllowed[, int $unitsPerEm = 1000 ][, array<int, int> $fullUnicodeToGid = [] ][, array<int, int> $glyphWidths = [] ][, array<int, array<int, int>>|null $kernPairs = null ][, array<int, array<int, array{components: int[], ligature: int}>>|null $ligatures = null ][, array<int, int>|null $verticalWidths = null ][, int|null $underlinePosition = null ][, int|null $underlineThickness = null ][, MathTableData|null $mathTable = null ]) : mixed
Parameters
$postScriptName : string

PostScript name (name table ID 6)

$familyName : string

Family name (name table ID 1)

$ascent : int

Typographic ascender (1000 units/em)

$descent : int

Typographic descender (negative, 1000 units/em)

$capHeight : int

Cap height (1000 units/em)

$xHeight : int

x-height (1000 units/em)

$italicAngle : float

Italic angle in degrees

$stemV : int

Estimated vertical stem width

$flags : int

PDF font flags bitmask

$fontBBox : array<int, int>

[xMin, yMin, xMax, yMax] (1000 units/em)

$charWidths : array<int, int>

WinAnsi byte (32-255) → width (1000 units/em)

$unicodeMap : array<int, int>

WinAnsi byte (32-255) → Unicode codepoint

$cffBytes : string

Raw CFF table bytes (for /FontFile3 /Subtype /CIDFontType0C)

$fontBytes : string

Raw OTF file bytes (for /FontFile3 /Subtype /OpenType)

$embeddingAllowed : bool

fsType restriction check

$unitsPerEm : int = 1000

Font design units per em

$fullUnicodeToGid : array<int, int> = []

All Unicode → GID mappings

$glyphWidths : array<int, int> = []

GID → advance width (design units)

$kernPairs : array<int, array<int, int>>|null = null

leftGid => [rightGid => xAdvanceAdjust] (design units)

$ligatures : array<int, array<int, array{components: int[], ligature: int}>>|null = null

firstGid => ligature rules

$verticalWidths : array<int, int>|null = null

GID => vertical advance width (design units)

$underlinePosition : int|null = null

post table FWord — offset of the underline's top edge from the baseline (design units; negative = below baseline). Null if the table is missing.

$underlineThickness : int|null = null

post table FWord — underline stroke thickness in design units.

$mathTable : MathTableData|null = null

Parsed MATH table when the font has one (Latin Modern Math, STIX Two Math, Cambria Math, ...). Null for non-math fonts.


        
On this page

Search results