Pop\Font\TrueType\Table\Os2::__construct PHP Метод

__construct() публичный Метод

Instantiate a OTF 'OS/2' table object.
public __construct ( AbstractFont $font ) : Os2
$font Pop\Font\AbstractFont
Результат Os2
    public function __construct(\Pop\Font\AbstractFont $font)
    {
        $this->flags = new \ArrayObject(array('isFixedPitch' => false, 'isSerif' => false, 'isSymbolic' => false, 'isScript' => false, 'isNonSymbolic' => false, 'isItalic' => false, 'isAllCap' => false, 'isSmallCap' => false, 'isForceBold' => false), \ArrayObject::ARRAY_AS_PROPS);
        $bytePos = $font->tableInfo['OS/2']->offset + 8;
        $ary = unpack("nfsType", $font->read($bytePos, 2));
        $this->embeddable = $ary['fsType'] != 2 && ($ary['fsType'] & 0x200) == 0;
        $bytePos = $font->tableInfo['OS/2']->offset + 30;
        $ary = unpack("nfamily_class", $font->read($bytePos, 2));
        $familyClass = $font->shiftToSigned($ary['family_class']) >> 8;
        if ($familyClass >= 1 && $familyClass <= 5 || $familyClass == 7) {
            $this->flags->isSerif = true;
        } else {
            if ($familyClass == 8) {
                $this->flags->isSerif = false;
            }
        }
        if ($familyClass == 10) {
            $this->flags->isScript = true;
        }
        if ($familyClass == 12) {
            $this->flags->isSymbolic = true;
            $this->flags->isNonSymbolic = false;
        } else {
            $this->flags->isSymbolic = false;
            $this->flags->isNonSymbolic = true;
        }
        // Unicode bit-sniffing may not be necessary.
        $bytePos += 3;
        $ary = unpack('NunicodeRange1/' . 'NunicodeRange2/' . 'NunicodeRange3/' . 'NunicodeRange4', $font->read($bytePos, 16));
        if ($ary['unicodeRange1'] == 1 && $ary['unicodeRange2'] == 0 && $ary['unicodeRange3'] == 0 && $ary['unicodeRange4'] == 0) {
            $this->flags->isSymbolic = false;
            $this->flags->isNonSymbolic = true;
        }
        $bytePos = $font->tableInfo['OS/2']->offset + 76;
        $ary = unpack("ncap/", $font->read($bytePos, 2));
        $this->capHeight = $font->toEmSpace($font->shiftToSigned($ary['cap']));
    }