SetaPDF_Core_Font_Type1 Class for Type1 fonts

File: /SetaPDF/Core/Font/Type1.php

Class hierarchy

Implements

Summary

Static Properties

$_fonts

static protected array SetaPDF_Core_Font_Type1::$_fonts = array()

An array caching font objects


Properties

$_avgWidth

protected integer|float SetaPDF_Core_Font_Type1::$_avgWidth

The average width of glyphs in the font.

$_charCodeCache

protected array SetaPDF_Core_Font_Type1::$_charCodeCache = array()

A char code cache which is used in SetaPDF_Core_Font::getCharByCharCode().

$_dictionary

$_encodingTable

The encoding table

$_fontDescriptor

$_glyphsWidthCache

protected array SetaPDF_Core_Font_Type1::$_glyphsWidthCache = array()

A cache of width values

$_indirectObject

$_info

protected array SetaPDF_Core_Font_Type1::$_info = array()

Array holding information about the font

$_substituteCharacter

The UTF-16BE unicode value for a substitute character

$_toUnicodeTable

The map that maps character codes to uncidoe values

$_widths

Glyph widths

$_widthsByCharCode

Widths by char codes


Static Methods

freeCache()

static public void SetaPDF_Core_Font::freeCache ( SetaPDF_Core_Document $document )

Release font instances by a document instance.

Parameters
$document : SetaPDF_Core_Document
 

freeFontCache()

static public void SetaPDF_Core_Font::freeFontCache ( SetaPDF_Core_Document $document )

Release font instances by a document instance.

Parameters
$document : SetaPDF_Core_Document
 
See

get()

static public SetaPDF_Core_Font SetaPDF_Core_Font::get ( SetaPDF_Core_Type_IndirectObjectInterface $indirectObjectOrDictionary )

Get a font object by an indirect reference.

The needed font object class is automatically resolve via the Subtype value of the font dictionary.

Parameters
$indirectObjectOrDictionary : SetaPDF_Core_Type_IndirectObjectInterface
 
Exceptions

Throws SetaPDF_Exception_NotImplemented, SetaPDF_Core_Font_Exception


Methods

__construct()

public SetaPDF_Core_Font_Type1::__construct ( SetaPDF_Core_Type_IndirectObjectInterface|SetaPDF_Core_Type_Dictionary $indirectObjectOrDictionary )

The constructor.

Parameters
$indirectObjectOrDictionary : SetaPDF_Core_Type_IndirectObjectInterface|SetaPDF_Core_Type_Dictionary
 
Exceptions

Throws SetaPDF_Core_Font_Exception

_getCharCodesTable()

protected SetaPDF_Core_Font_Cmap|array|false SetaPDF_Core_Font_Simple::_getCharCodesTable ( void )

Get the map that maps character codes to unicode values.

_getEncodingTable()

protected array SetaPDF_Core_Font_Simple::_getEncodingTable ( void )

Get the encoding table based on the Encoding dictionary and it's Differences entry (if available).

_getWidths()

protected void SetaPDF_Core_Font_Type1::_getWidths ( void )

Resolves the width values from the font descriptor and fills the $_width-array.

_sortByArray()

protected array SetaPDF_Core_Font_Simple::_sortByArray ( $array $array )

Sorts an array by shifting the array values to the top of the resulting array.

Parameters
$array : $array
 

getAscent()

public float SetaPDF_Core_Font_Type1::getAscent ( void )

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

getAvgWidth()

public integer|float SetaPDF_Core_Font_Type1::getAvgWidth ( [ boolean $calculateIfUndefined = false ] )

Get the average glyph width.

Parameters
$calculateIfUndefined : boolean
 

getBaseEncodingTable()

public array SetaPDF_Core_Font_Type1::getBaseEncodingTable ( void )

Get the base encoding of the font.

If no BaseEncoding entry is available we use the Standard encoding for now. This should be extended to get the fonts build in encoding later.

getCharByCharCode()

public string SetaPDF_Core_Font::getCharByCharCode ( string $charCode [, string $encoding = 'UTF-8' ] )

Converts a char code from the font specific encoding to another encoding.

Parameters
$charCode : string

The char code in the font specific encoding.

$encoding : string

The resulting encoding

getCharCode()

public string SetaPDF_Core_Font::getCharCode ( string $char [, string $encoding = 'UTF-16BE' ] )

Get the final character code of a single character.

Parameters
$char : string

The character

$encoding : string

The output encoding

getCharCodes()

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

Get the final character codes of a character string.

Parameters
$chars : string

The character string

$encoding : string

The output encoding

getCharsByCharCodes()

public string|array SetaPDF_Core_Font::getCharsByCharCodes ( string $charCodes [, string $encoding = 'UTF-8' [, bool $asArray = true ]] )

Converts char codes from the font specific encoding to another encoding.

Parameters
$charCodes : string

The char codes in the font specific encoding.

$encoding : string

The resulting encoding

$asArray : bool
 

getDescent()

public float SetaPDF_Core_Font_Type1::getDescent ( void )

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

getDictionary()

public SetaPDF_Core_Type_Dictionary SetaPDF_Core_Font::getDictionary ( void )

Get the font dictionary.

getFontBBox()

public array SetaPDF_Core_Font_Type1::getFontBBox ( void )

Returns the font bounding box.

getFontDescriptor()

public SetaPDF_Core_Font_Descriptor SetaPDF_Core_Font_Type1::getFontDescriptor ( void )

Get the font descriptor object.

getFontFamily()

public string SetaPDF_Core_Font_Type1::getFontFamily ( void )

Get the font family.

getFontName()

public string SetaPDF_Core_Font_Type1::getFontName ( void )

Get the font name.

getGlyphWidth()

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

Get the width of a glyph/character.

Parameters
$char : string
 
$encoding : string

The input encoding

See

getGlyphWidthByCharCode()

public float|int SetaPDF_Core_Font_Type1::getGlyphWidthByCharCode ( string $charCode )

Get the width of a glpyh by its char code.

Parameters
$charCode : string
 

getGlyphsWidth()

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

Get the width of the glyphs/characters.

Parameters
$chars : string

The characters

$encoding : string

The input encoding

getGlyphsWidthByCharCodes()

public float|int SetaPDF_Core_Font::getGlyphsWidthByCharCodes ( string $charCodes )

Get the width of glyphs by their char codes.

Parameters
$charCodes : string
 

getIndirectObject()

public SetaPDF_Core_Type_IndirectObjectInterface SetaPDF_Core_Font::getIndirectObject ( [ SetaPDF_Core_Document $document = null ] )

Gets an indirect object for this font.

Parameters
$document : SetaPDF_Core_Document
 
Exceptions

Throws InvalidArgumentException

See

getInfo()

public bool|string SetaPDF_Core_Font::getInfo ( string $name )

Get information about the font.

Parameters
$name : string

The name of the font

getItalicAngle()

public float SetaPDF_Core_Font_Type1::getItalicAngle ( void )

Returns the italic angle.

getMaxWidth()

public integer|float SetaPDF_Core_Font_Type1::getMaxWidth ( void )

Get the max glyph width.

getMissingWidth()

public integer|float SetaPDF_Core_Font_Type1::getMissingWidth ( void )

Get the missing glyph width.

getResourceType()

public string SetaPDF_Core_Font::getResourceType ( void )

Get the resource type.

See

getType()

public mixed SetaPDF_Core_Font::getType ( void )

Get the Subtype entry of the font dictionary.

isBold()

public boolean SetaPDF_Core_Font_Type1::isBold ( void )

Checks if the font is bold.

isItalic()

public boolean SetaPDF_Core_Font_Type1::isItalic ( void )

Checks if the font is italic.

isMonospace()

public boolean SetaPDF_Core_Font_Type1::isMonospace ( void )

Checks if the font is monospace.

splitCharCodes()

public array SetaPDF_Core_Font::splitCharCodes ( string $charCodes )

Split a string of char codes into single char codes.

Parameters
$charCodes : string