Class: I2CE FontMetric

From IHRIS Wiki
Revision as of 21:22, 16 October 2009 by Litlfred (talk | contribs)

This article desrcibes the class I2CE_FontMetric It is contained in the module textlayout in the package TextLayout Tools

The class is defined in the file: lib/I2CE_FontMetric.php

Class to contain information about font metrics.


@package I2CE

@subpackage TextLayout

@author Carl Leitner <litlfred@ibiblio.org>


@version 0.1

@access public

Variables

$bbox

protected @var $bbox of numeric. the bounding box with values in order llx lly urx ury

  • Type: protected $bbox

$ascender

protected @var numeric $ascender

  • Type: protected $ascender

$descender

protected @var numeric $ascender

  • Type: protected $descender

$linegap

protected @var numeric $linegap

  • Type: protected $linegap

$is_fixed_width

protected @var array of boolean $is_fixed_width whether or not this font is fixed width

  • Type: protected $is_fixed_width

$fixed_character_width

protected @var int the size of a fixed width character

  • Type: protected $fixed_character_width

$fixed_character_height

protected @var int the size of a fixed width character

  • Type: protected $fixed_character_height

$size

protected @var int $size the font size in points

  • Type: protected $size

$encoding

proteted @var I2CE_Encoding encoding data for the character set

  • Type: protected $encoding

$kerning_table_pairs

protected @var array of array of numbers $kerning_table_pairs the kerning table for pairs. the first index is the preceeding character the second index is the following character

  • Type: protected $kerning_table_pairs

$kerning_table_groups

protected @var array of array of numbers $kerning_table_groups the kerning table for groups. the first index is the group for the preceeding character the second index is the group for the following character

  • Type: protected $kerning_table_groups

$kerning_groups

protected $var array with keys character and values the kerning groups

  • Type: protected $kerning_groups

$character_widths

of floats containing $character_widths the character widths for the current font to be super redundant the keys will be either the character code or the glyph name

  • Type: public y $character_widths

$character_heights

of array of floats $character_heights containing the character heights for the current font to be super redundant the keys will be either the character code or the glyph name

  • Type: public y $character_heights

$character_info

of array of mixed $character_info containing character information (besides the width)

  • Type: public y $character_info

$font_info

protected @var array of mixed global font information

  • Type: protected $font_info

Methods

__construct()

needs to be one that is a valid encoding for PHP multibyte strings.

  • Signature: public function __construct($encoding)

Parameters:

  • I2CE_Encoding $encoding
    the encoding used for the internal storage of strings/characters

getAllFontCharacteristics()

Get all the font information

  • Signature: public function getAllFontCharacteristics()

getAscender()

get the asceneder value

  • Signature: public function getAscender()
  • Returns: numeric $ascender

getBoundingBox()

Get the bounding box $returns array $bbox of numeric. The bounding box in llx lly urx ury order

  • Signature: public function getBoundingBox()

getCharacterHeight()

Gets the character height of a character @param bool use_font_size default false --

  • Signature: public function getCharacterHeight($ch,$use_font_size)
  • Returns: float the width

Parameters:

  • mixed $ch
    a character
  • $use_font_size
    • Default Value: false

getCharacterHeights()

Get the character heights

  • Signature: public function getCharacterHeights()
  • Returns: array of number, the values of which are the heights

and the keys of which are some combination of glpyh names, character codes, and unicodes codepoints, or characters

getCharacterInfo()

Get information associated to a character

  • Signature: public function getCharacterInfo($ch,$key)
  • Returns: mixed $value

Parameters:

getCharacterWidth()

Gets the character width of a character @param bool use_font_size default false --

  • Signature: public function getCharacterWidth($ch,$use_font_size)
  • Returns: float the width

Parameters:

  • mixed $ch
    a character (or glyphname)
  • $use_font_size
    • Default Value: false

getCharacterWidths()

Get the character widths

  • Signature: public function getCharacterWidths()
  • Returns: array of number, the values of which are the widths

and the keys of which are some combination of glpyh names, character codes, and unicodes codepoints, or characters

getDescender()

get the desceneder value

  • Signature: public function getDescender()
  • Returns: numeric $descender

getEncoding()

Get the encoding used for the internal storage of strings/characters

  • Signature: public function getEncoding()
  • Returns: string

getFixedStringWidth()

Caluclulate the length of a fixed width string

  • Signature: protected function getFixedStringWidth($string)
  • Returns: float/int the length of the string

Parameters:

  • string $string
    the string we wish to calculate the length of

getFixedWidth()

Get the width of a character in a fixed width font

  • Signature: public function getFixedWidth()
  • Returns: number Returns null if called when the current font is not fixed width

getFontCharacteristic()

Get a global font characteristic @param $key

  • Signature: public function getFontCharacteristic($key)
  • Returns: mixed the value associated to the $key

Parameters:

  • $key

getFontSize()

Get the font size

  • Signature: public function getFontSize()
  • Returns: int

getKerningByGroup()

get the kerning values associated to a pair of groups @param bool use_font_size default false --

  • Signature: public function getKerningByGroup($g1,$g2,$use_font_size)
  • Returns: numeric $kern the kerning value or null if none found

Parameters:

  • mixed $g1
    the preceeding group
  • mixed $g2
    the following group
  • $use_font_size
    • Default Value: false

getKerningByPair()

get the kerning values associated to a pair of character @param bool use_font_size default false --

  • Signature: public function getKerningByPair($ch1,$ch2,$use_font_size)
  • Returns: numeric the kerning value or null if there is none found

Parameters:

  • mixed $ch1
    the preceeding character
  • mixed $ch2
    the following character
  • $use_font_size
    • Default Value: false

getKerningGroup()

Get the kerning groups associated to a character

  • Signature: public function getKerningGroup($ch)
  • Returns: mixed the group

Parameters:

getKerningValue()

Return the (horizontal) kerning values for a pair of characters If there is kerning info for both groups and pairs, the pairs takes prescedence @params string $ch1 the left characcter @params string $ch2 the right character @param bool use_font_size default false --

  • Signature: public function getKerningValue($ch1,$ch2,$use_font_size)
  • Returns: number the kerning value or null if none is found

Parameters:

  • $ch1
  • $ch2
  • $use_font_size

getLinegap()

get the line gap value

  • Signature: public function getLinegap()
  • Returns: numeric $linegap

getStringWidth()

Caluclulate the length of a string

  • Signature: public function getStringWidth($string,$use_font_size)
  • Returns: float/int the length of the string

note: if it is a fixed width font, we assume that all characters are printable. in particular a line break is considered a printable character. If you have line breaks to deal with @param bool use_font_size default false -- you should see TextColumn Parameters:

  • string $string
    the string we wish to calculate the length of
  • $use_font_size
    • Default Value: false

getTrackingValues()

Get the tracking values for the current font size

  • Signature: public function getTrackingValues()
  • Returns: array $values of floats. $values[0] is the minimum, $values[1] is the maximum or null if

if there is no tracking values

getVariableStringWidth()

Function caluclulate the length of a variable width string @param bool use_font_size default false --

  • Signature: protected function getVariableStringWidth($string)
  • Returns: float the length of the string

Parameters:

  • string $string
    the string we wish to calculate the length of

isFixedWidth()

Check to see if the current font is fixed width

  • Signature: public function isFixedWidth()
  • Returns: boolean true if it is fixed width

setAscender()

set the asceneder value

  • Signature: public function setAscender($ascender)

Parameters:

setBoundingBox()

Set the bounding box $param array $bbox of numeric. The bounding box in llx lly urx ury order

  • Signature: public function setBoundingBox($bbox)

Parameters:

  • $bbox

setCharacterHeight()

Sets the character width of a character

  • Signature: public function setCharacterHeight($ch,$h)

Parameters:

setCharacterInfo()

Sets information associated to a character

  • Signature: public function setCharacterInfo($ch,$key,$value)

Parameters:

setCharacterWidth()

Sets the character width of a character

  • Signature: public function setCharacterWidth($ch,$w)

Parameters:

  • mixed $ch
    a character (or glyphname)
  • numeriv $w
    the width

setDescender()

set the desceneder value

  • Signature: public function setDescender($descender)

Parameters:

setFixedHeightSize()

set the fixed height character size

  • Signature: public function setFixedHeightSize($height)

Parameters:

setFixedWidth()

Set whether or not this is a fixed width font @parma boolean $is_fixed_width

  • Signature: public function setFixedWidth($is_fixed_width)

Parameters:

  • $is_fixed_width

setFixedWidthSize()

set the fixed width character size

  • Signature: public function setFixedWidthSize($width)

Parameters:

setFontCharacteristic()

Set a global font characteristic

  • Signature: public function setFontCharacteristic($key,$value)

Parameters:

setFontSize()

Set the font size @params int $size

  • Signature: public function setFontSize($size)

Parameters:

  • $size

setKerningByGroup()

get the kerning values associated to a pair of groups @params numeric $kern the kerning value

  • Signature: public function setKerningByGroup($g1,$g2,$kern)

Parameters:

  • mixed $g1
    the preceeding group
  • mixed $g2
    the following grou
  • $kern

setKerningByPair()

set the kerning values associated to a pair of character @params numeric $kern the kerning value

  • Signature: public function setKerningByPair($ch1,$ch2,$kern)

Parameters:

  • mixed $ch1
    the preceeding character
  • mixed $ch2
    the following character
  • $kern

setKerningGroup()

Set the kerning groups associated to a character

  • Signature: public function setKerningGroup($ch,$group)

Parameters:

setLinegap()

set the line gap value

  • Signature: public function setLinegap($linegap)

Parameters: