SetaPDF_Core_Font_TrueType_Subset Class that represents a PDF TrueType font subset.

File: /SetaPDF v2/Core/Font/TrueType/Subset.php

This class will embedded a subset of the original TrueType font programm with only glyphs, that were requested by calling the getCharCodes() method.

The subset can represent up to 255 glyphs.

Class hierarchy

Implements

Summary

Constants

TYPE_COLOR_SPACE

const SetaPDF_Core_Font_TrueType_Subset::TYPE_COLOR_SPACE = 'ColorSpace'

TYPE_EXT_G_STATE

const SetaPDF_Core_Font_TrueType_Subset::TYPE_EXT_G_STATE = 'ExtGState'

TYPE_FONT

const SetaPDF_Core_Font_TrueType_Subset::TYPE_FONT = 'Font'

TYPE_PATTERN

const SetaPDF_Core_Font_TrueType_Subset::TYPE_PATTERN = 'Pattern'

TYPE_PROC_SET

const SetaPDF_Core_Font_TrueType_Subset::TYPE_PROC_SET = 'ProcSet'

TYPE_PROPERTIES

const SetaPDF_Core_Font_TrueType_Subset::TYPE_PROPERTIES = 'Properties'

TYPE_SHADING

const SetaPDF_Core_Font_TrueType_Subset::TYPE_SHADING = 'Shading'

TYPE_X_OBJECT

const SetaPDF_Core_Font_TrueType_Subset::TYPE_X_OBJECT = 'XObject'


Properties

$_ascent

The ascent value.

$_charCodes

protected array SetaPDF_Core_Font_TrueType_Subset::$_charCodes = array(...)

Mapping from UTF-16BE characters to glyph ids.

$_chars

protected array SetaPDF_Core_Font_TrueType_Subset::$_chars = array(...)

Mapping from glyph ids to UTF-16BE charcater codes.

$_descent

The descent value.

$_dictionary

$_document

$_factor

The scaling factor from TrueType units to glyph coordinate system.

$_fontBBox

The font bounding box.

$_fontFile

$_fontName

The font name.

$_indirectObject

The indirect object for the PDF font object.

$_throwExceptionWhenMissingGlyphIsUsed

Flag saying whether an exception should be thrown if a character is not available or not.

$_widths

protected int[] SetaPDF_Core_Font_TrueType_Subset::$_widths = array()

The widths of the used glyphs.

$maxCharLimit

The char count limit.


Methods

__construct()

public SetaPDF_Core_Font_TrueType_Subset::__construct (
SetaPDF_Core_Document $document, SetaPDF_Core_Font_TrueType_File|string|SetaPDF_Core_Reader_Binary $fontFile [, bool $throwExceptionWhenMissingGlyphIsUsed = false [, bool $ignoreLicenseRestrictions = false ]]
)

The constructor.

Parameters
$document : SetaPDF_Core_Document
 
$fontFile : SetaPDF_Core_Font_TrueType_File|string|SetaPDF_Core_Reader_Binary
 
$throwExceptionWhenMissingGlyphIsUsed : bool

Whether an exception should be thrown if the registered character cannot be found or not.

$ignoreLicenseRestrictions : bool

Can be used to disable the font license check

Exceptions

Throws SetaPDF_Core_Font_Exception

_createSubset()

Create the final subset file and embed it into the PDF document.

Exceptions

Throws SetaPDF_Core_Font_Exception

Throws SetaPDF_Exception_NotImplemented

_getSubsetFile()

_getToUnicode()

Returns the ToUnicode cmap.

_registerChar()

protected SetaPDF_Core_Font_TrueType_Subset::_registerChar (
string $char, string $charCode
): void

Registers a glyph that got registered in the font subsetter.

Parameters
$char : string
 
$charCode : string
 

cleanUp()

Release cycled references and memory.

getAscent()

Returns the distance from baseline of highest ascender (Typographic ascent).

getCharCodes()

public SetaPDF_Core_Font_TrueType_Subset::getCharCodes (
string $chars [, string $encoding = 'UTF-16BE' ]
): array

Get the final character codes of a character string.

Parameters
$chars : string

The character string

$encoding : string

The output encoding

Exceptions

Throws SetaPDF_Core_Font_Exception

Throws SetaPDF_Exception_NotImplemented

getDescent()

Returns the distance from baseline of lowest descender (Typographic descent).

getDocument()

Get the document instance.

getFontBBox()

Get the font bounding box array.

getFontDescriptorFlags()

Get flags defining various characteristics of the font.

See
  • PDF 32000-1:2008 - 9.8.2 Font Descriptor Flags

getFontFile()

Get the source true type file.

getFontName()

Get the font name.

Exceptions

Throws SetaPDF_Core_Font_Exception

getGlyphWidth()

public SetaPDF_Core_Font_TrueType_Subset::getGlyphWidth (
string $char [, string $encoding = 'UTF-16BE' ]
): int

Get the glyph width of a single character.

Parameters
$char : string

The character

$encoding : string

The encoding of the character

Exceptions

Throws SetaPDF_Core_Font_Exception

Throws SetaPDF_Exception_NotImplemented

getGlyphWidthByCharCode()

Get the glyph width by a char code.

Parameters
$charCode : string
 
Exceptions

Throws SetaPDF_Core_Font_Exception

Throws SetaPDF_Exception_NotImplemented

getGlyphsWidth()

public SetaPDF_Core_Font_TrueType_Subset::getGlyphsWidth (
string $chars [, string $encoding = 'UTF-16BE' ]
): int|bool

Get the glyphs width of a string.

Parameters
$chars : string

The string

$encoding : string

The encoding of the characters

Exceptions

Throws SetaPDF_Core_Font_Exception

Throws SetaPDF_Exception_NotImplemented

getIndirectObject()

Get the indirect object of this resource.

Parameters
$document : SetaPDF_Core_Document|null
 

getRegisteredChars()

Get all registered characters (UTF-16BE encoded) indexed by their glyph ids.

getResourceType()

Get the resource type of an implementation.

getUnderlinePosition()

Get the underline position.

getUnderlineThickness()

Get the underline thickness.

splitCharCodes()

public SetaPDF_Core_Font_TrueType_Subset::splitCharCodes (
string $charCodes
): array

Split a string of char codes into single char codes.

Parameters
$charCodes : string