File indexing completed on 2024-12-22 05:36:54

0001 <?php
0002 /**
0003  * Zend Framework
0004  *
0005  * LICENSE
0006  *
0007  * This source file is subject to the new BSD license that is bundled
0008  * with this package in the file LICENSE.txt.
0009  * It is also available through the world-wide-web at this URL:
0010  * http://framework.zend.com/license/new-bsd
0011  * If you did not receive a copy of the license and are unable to
0012  * obtain it through the world-wide-web, please send an email
0013  * to license@zend.com so we can send you a copy immediately.
0014  *
0015  * @category   Zend
0016  * @package    Zend_Pdf
0017  * @subpackage Fonts
0018  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0019  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0020  * @version    $Id$
0021  */
0022 
0023 /** Zend_Pdf_Cmap */
0024 // require_once 'Zend/Pdf/Cmap.php';
0025 
0026 
0027 /**
0028  * Implements the "byte encoding" character map (type 0).
0029  *
0030  * This is the (legacy) Apple standard encoding mechanism and provides coverage
0031  * for characters in the Mac Roman character set only. Consequently, this cmap
0032  * type should be used only as a last resort.
0033  *
0034  * The mapping from Mac Roman to Unicode can be found at
0035  * {@link http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT}.
0036  *
0037  * @package    Zend_Pdf
0038  * @subpackage Fonts
0039  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0040  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0041  */
0042 class Zend_Pdf_Cmap_ByteEncoding extends Zend_Pdf_Cmap
0043 {
0044   /**** Instance Variables ****/
0045 
0046 
0047     /**
0048      * Glyph index array. Stores the actual glyph numbers. The array keys are
0049      * the translated Unicode code points.
0050      * @var array
0051      */
0052     protected $_glyphIndexArray = array();
0053 
0054 
0055 
0056   /**** Public Interface ****/
0057 
0058 
0059   /* Concrete Class Implementation */
0060 
0061     /**
0062      * Returns an array of glyph numbers corresponding to the Unicode characters.
0063      *
0064      * If a particular character doesn't exist in this font, the special 'missing
0065      * character glyph' will be substituted.
0066      *
0067      * See also {@link glyphNumberForCharacter()}.
0068      *
0069      * @param array $characterCodes Array of Unicode character codes (code points).
0070      * @return array Array of glyph numbers.
0071      */
0072     public function glyphNumbersForCharacters($characterCodes)
0073     {
0074         $glyphNumbers = array();
0075         foreach ($characterCodes as $key => $characterCode) {
0076 
0077            if (! isset($this->_glyphIndexArray[$characterCode])) {
0078                 $glyphNumbers[$key] = Zend_Pdf_Cmap::MISSING_CHARACTER_GLYPH;
0079                 continue;
0080             }
0081 
0082             $glyphNumbers[$key] = $this->_glyphIndexArray[$characterCode];
0083 
0084         }
0085         return $glyphNumbers;
0086     }
0087 
0088     /**
0089      * Returns the glyph number corresponding to the Unicode character.
0090      *
0091      * If a particular character doesn't exist in this font, the special 'missing
0092      * character glyph' will be substituted.
0093      *
0094      * See also {@link glyphNumbersForCharacters()} which is optimized for bulk
0095      * operations.
0096      *
0097      * @param integer $characterCode Unicode character code (code point).
0098      * @return integer Glyph number.
0099      */
0100     public function glyphNumberForCharacter($characterCode)
0101     {
0102         if (! isset($this->_glyphIndexArray[$characterCode])) {
0103             return Zend_Pdf_Cmap::MISSING_CHARACTER_GLYPH;
0104         }
0105         return $this->_glyphIndexArray[$characterCode];
0106     }
0107 
0108     /**
0109      * Returns an array containing the Unicode characters that have entries in
0110      * this character map.
0111      *
0112      * @return array Unicode character codes.
0113      */
0114     public function getCoveredCharacters()
0115     {
0116         return array_keys($this->_glyphIndexArray);
0117     }
0118 
0119     /**
0120      * Returns an array containing the glyphs numbers that have entries in this character map.
0121      * Keys are Unicode character codes (integers)
0122      *
0123      * This functionality is partially covered by glyphNumbersForCharacters(getCoveredCharacters())
0124      * call, but this method do it in more effective way (prepare complete list instead of searching
0125      * glyph for each character code).
0126      *
0127      * @internal
0128      * @return array Array representing <Unicode character code> => <glyph number> pairs.
0129      */
0130     public function getCoveredCharactersGlyphs()
0131     {
0132         return $this->_glyphIndexArray;
0133     }
0134 
0135 
0136   /* Object Lifecycle */
0137 
0138     /**
0139      * Object constructor
0140      *
0141      * Parses the raw binary table data. Throws an exception if the table is
0142      * malformed.
0143      *
0144      * @param string $cmapData Raw binary cmap table data.
0145      * @throws Zend_Pdf_Exception
0146      */
0147     public function __construct($cmapData)
0148     {
0149         /* Sanity check: This table must be exactly 262 bytes long.
0150          */
0151         $actualLength = strlen($cmapData);
0152         if ($actualLength != 262) {
0153             // require_once 'Zend/Pdf/Exception.php';
0154             throw new Zend_Pdf_Exception('Insufficient table data',
0155                                          Zend_Pdf_Exception::CMAP_TABLE_DATA_TOO_SMALL);
0156         }
0157 
0158         /* Sanity check: Make sure this is right data for this table type.
0159          */
0160         $type = $this->_extractUInt2($cmapData, 0);
0161         if ($type != Zend_Pdf_Cmap::TYPE_BYTE_ENCODING) {
0162             // require_once 'Zend/Pdf/Exception.php';
0163             throw new Zend_Pdf_Exception('Wrong cmap table type',
0164                                          Zend_Pdf_Exception::CMAP_WRONG_TABLE_TYPE);
0165         }
0166 
0167         $length = $this->_extractUInt2($cmapData, 2);
0168         if ($length != $actualLength) {
0169             // require_once 'Zend/Pdf/Exception.php';
0170             throw new Zend_Pdf_Exception("Table length ($length) does not match actual length ($actualLength)",
0171                                          Zend_Pdf_Exception::CMAP_WRONG_TABLE_LENGTH);
0172         }
0173 
0174         /* Mapping tables should be language-independent. The font may not work
0175          * as expected if they are not. Unfortunately, many font files in the
0176          * wild incorrectly record a language ID in this field, so we can't
0177          * call this a failure.
0178          */
0179         $language = $this->_extractUInt2($cmapData, 4);
0180         if ($language != 0) {
0181             // Record a warning here somehow?
0182         }
0183 
0184         /* The mapping between the Mac Roman and Unicode characters is static.
0185          * For simplicity, just put all 256 glyph indices into one array keyed
0186          * off the corresponding Unicode character.
0187          */
0188         $i = 6;
0189         $this->_glyphIndexArray[0x00]   = ord($cmapData[$i++]);
0190         $this->_glyphIndexArray[0x01]   = ord($cmapData[$i++]);
0191         $this->_glyphIndexArray[0x02]   = ord($cmapData[$i++]);
0192         $this->_glyphIndexArray[0x03]   = ord($cmapData[$i++]);
0193         $this->_glyphIndexArray[0x04]   = ord($cmapData[$i++]);
0194         $this->_glyphIndexArray[0x05]   = ord($cmapData[$i++]);
0195         $this->_glyphIndexArray[0x06]   = ord($cmapData[$i++]);
0196         $this->_glyphIndexArray[0x07]   = ord($cmapData[$i++]);
0197         $this->_glyphIndexArray[0x08]   = ord($cmapData[$i++]);
0198         $this->_glyphIndexArray[0x09]   = ord($cmapData[$i++]);
0199         $this->_glyphIndexArray[0x0a]   = ord($cmapData[$i++]);
0200         $this->_glyphIndexArray[0x0b]   = ord($cmapData[$i++]);
0201         $this->_glyphIndexArray[0x0c]   = ord($cmapData[$i++]);
0202         $this->_glyphIndexArray[0x0d]   = ord($cmapData[$i++]);
0203         $this->_glyphIndexArray[0x0e]   = ord($cmapData[$i++]);
0204         $this->_glyphIndexArray[0x0f]   = ord($cmapData[$i++]);
0205         $this->_glyphIndexArray[0x10]   = ord($cmapData[$i++]);
0206         $this->_glyphIndexArray[0x11]   = ord($cmapData[$i++]);
0207         $this->_glyphIndexArray[0x12]   = ord($cmapData[$i++]);
0208         $this->_glyphIndexArray[0x13]   = ord($cmapData[$i++]);
0209         $this->_glyphIndexArray[0x14]   = ord($cmapData[$i++]);
0210         $this->_glyphIndexArray[0x15]   = ord($cmapData[$i++]);
0211         $this->_glyphIndexArray[0x16]   = ord($cmapData[$i++]);
0212         $this->_glyphIndexArray[0x17]   = ord($cmapData[$i++]);
0213         $this->_glyphIndexArray[0x18]   = ord($cmapData[$i++]);
0214         $this->_glyphIndexArray[0x19]   = ord($cmapData[$i++]);
0215         $this->_glyphIndexArray[0x1a]   = ord($cmapData[$i++]);
0216         $this->_glyphIndexArray[0x1b]   = ord($cmapData[$i++]);
0217         $this->_glyphIndexArray[0x1c]   = ord($cmapData[$i++]);
0218         $this->_glyphIndexArray[0x1d]   = ord($cmapData[$i++]);
0219         $this->_glyphIndexArray[0x1e]   = ord($cmapData[$i++]);
0220         $this->_glyphIndexArray[0x1f]   = ord($cmapData[$i++]);
0221         $this->_glyphIndexArray[0x20]   = ord($cmapData[$i++]);
0222         $this->_glyphIndexArray[0x21]   = ord($cmapData[$i++]);
0223         $this->_glyphIndexArray[0x22]   = ord($cmapData[$i++]);
0224         $this->_glyphIndexArray[0x23]   = ord($cmapData[$i++]);
0225         $this->_glyphIndexArray[0x24]   = ord($cmapData[$i++]);
0226         $this->_glyphIndexArray[0x25]   = ord($cmapData[$i++]);
0227         $this->_glyphIndexArray[0x26]   = ord($cmapData[$i++]);
0228         $this->_glyphIndexArray[0x27]   = ord($cmapData[$i++]);
0229         $this->_glyphIndexArray[0x28]   = ord($cmapData[$i++]);
0230         $this->_glyphIndexArray[0x29]   = ord($cmapData[$i++]);
0231         $this->_glyphIndexArray[0x2a]   = ord($cmapData[$i++]);
0232         $this->_glyphIndexArray[0x2b]   = ord($cmapData[$i++]);
0233         $this->_glyphIndexArray[0x2c]   = ord($cmapData[$i++]);
0234         $this->_glyphIndexArray[0x2d]   = ord($cmapData[$i++]);
0235         $this->_glyphIndexArray[0x2e]   = ord($cmapData[$i++]);
0236         $this->_glyphIndexArray[0x2f]   = ord($cmapData[$i++]);
0237         $this->_glyphIndexArray[0x30]   = ord($cmapData[$i++]);
0238         $this->_glyphIndexArray[0x31]   = ord($cmapData[$i++]);
0239         $this->_glyphIndexArray[0x32]   = ord($cmapData[$i++]);
0240         $this->_glyphIndexArray[0x33]   = ord($cmapData[$i++]);
0241         $this->_glyphIndexArray[0x34]   = ord($cmapData[$i++]);
0242         $this->_glyphIndexArray[0x35]   = ord($cmapData[$i++]);
0243         $this->_glyphIndexArray[0x36]   = ord($cmapData[$i++]);
0244         $this->_glyphIndexArray[0x37]   = ord($cmapData[$i++]);
0245         $this->_glyphIndexArray[0x38]   = ord($cmapData[$i++]);
0246         $this->_glyphIndexArray[0x39]   = ord($cmapData[$i++]);
0247         $this->_glyphIndexArray[0x3a]   = ord($cmapData[$i++]);
0248         $this->_glyphIndexArray[0x3b]   = ord($cmapData[$i++]);
0249         $this->_glyphIndexArray[0x3c]   = ord($cmapData[$i++]);
0250         $this->_glyphIndexArray[0x3d]   = ord($cmapData[$i++]);
0251         $this->_glyphIndexArray[0x3e]   = ord($cmapData[$i++]);
0252         $this->_glyphIndexArray[0x3f]   = ord($cmapData[$i++]);
0253         $this->_glyphIndexArray[0x40]   = ord($cmapData[$i++]);
0254         $this->_glyphIndexArray[0x41]   = ord($cmapData[$i++]);
0255         $this->_glyphIndexArray[0x42]   = ord($cmapData[$i++]);
0256         $this->_glyphIndexArray[0x43]   = ord($cmapData[$i++]);
0257         $this->_glyphIndexArray[0x44]   = ord($cmapData[$i++]);
0258         $this->_glyphIndexArray[0x45]   = ord($cmapData[$i++]);
0259         $this->_glyphIndexArray[0x46]   = ord($cmapData[$i++]);
0260         $this->_glyphIndexArray[0x47]   = ord($cmapData[$i++]);
0261         $this->_glyphIndexArray[0x48]   = ord($cmapData[$i++]);
0262         $this->_glyphIndexArray[0x49]   = ord($cmapData[$i++]);
0263         $this->_glyphIndexArray[0x4a]   = ord($cmapData[$i++]);
0264         $this->_glyphIndexArray[0x4b]   = ord($cmapData[$i++]);
0265         $this->_glyphIndexArray[0x4c]   = ord($cmapData[$i++]);
0266         $this->_glyphIndexArray[0x4d]   = ord($cmapData[$i++]);
0267         $this->_glyphIndexArray[0x4e]   = ord($cmapData[$i++]);
0268         $this->_glyphIndexArray[0x4f]   = ord($cmapData[$i++]);
0269         $this->_glyphIndexArray[0x50]   = ord($cmapData[$i++]);
0270         $this->_glyphIndexArray[0x51]   = ord($cmapData[$i++]);
0271         $this->_glyphIndexArray[0x52]   = ord($cmapData[$i++]);
0272         $this->_glyphIndexArray[0x53]   = ord($cmapData[$i++]);
0273         $this->_glyphIndexArray[0x54]   = ord($cmapData[$i++]);
0274         $this->_glyphIndexArray[0x55]   = ord($cmapData[$i++]);
0275         $this->_glyphIndexArray[0x56]   = ord($cmapData[$i++]);
0276         $this->_glyphIndexArray[0x57]   = ord($cmapData[$i++]);
0277         $this->_glyphIndexArray[0x58]   = ord($cmapData[$i++]);
0278         $this->_glyphIndexArray[0x59]   = ord($cmapData[$i++]);
0279         $this->_glyphIndexArray[0x5a]   = ord($cmapData[$i++]);
0280         $this->_glyphIndexArray[0x5b]   = ord($cmapData[$i++]);
0281         $this->_glyphIndexArray[0x5c]   = ord($cmapData[$i++]);
0282         $this->_glyphIndexArray[0x5d]   = ord($cmapData[$i++]);
0283         $this->_glyphIndexArray[0x5e]   = ord($cmapData[$i++]);
0284         $this->_glyphIndexArray[0x5f]   = ord($cmapData[$i++]);
0285         $this->_glyphIndexArray[0x60]   = ord($cmapData[$i++]);
0286         $this->_glyphIndexArray[0x61]   = ord($cmapData[$i++]);
0287         $this->_glyphIndexArray[0x62]   = ord($cmapData[$i++]);
0288         $this->_glyphIndexArray[0x63]   = ord($cmapData[$i++]);
0289         $this->_glyphIndexArray[0x64]   = ord($cmapData[$i++]);
0290         $this->_glyphIndexArray[0x65]   = ord($cmapData[$i++]);
0291         $this->_glyphIndexArray[0x66]   = ord($cmapData[$i++]);
0292         $this->_glyphIndexArray[0x67]   = ord($cmapData[$i++]);
0293         $this->_glyphIndexArray[0x68]   = ord($cmapData[$i++]);
0294         $this->_glyphIndexArray[0x69]   = ord($cmapData[$i++]);
0295         $this->_glyphIndexArray[0x6a]   = ord($cmapData[$i++]);
0296         $this->_glyphIndexArray[0x6b]   = ord($cmapData[$i++]);
0297         $this->_glyphIndexArray[0x6c]   = ord($cmapData[$i++]);
0298         $this->_glyphIndexArray[0x6d]   = ord($cmapData[$i++]);
0299         $this->_glyphIndexArray[0x6e]   = ord($cmapData[$i++]);
0300         $this->_glyphIndexArray[0x6f]   = ord($cmapData[$i++]);
0301         $this->_glyphIndexArray[0x70]   = ord($cmapData[$i++]);
0302         $this->_glyphIndexArray[0x71]   = ord($cmapData[$i++]);
0303         $this->_glyphIndexArray[0x72]   = ord($cmapData[$i++]);
0304         $this->_glyphIndexArray[0x73]   = ord($cmapData[$i++]);
0305         $this->_glyphIndexArray[0x74]   = ord($cmapData[$i++]);
0306         $this->_glyphIndexArray[0x75]   = ord($cmapData[$i++]);
0307         $this->_glyphIndexArray[0x76]   = ord($cmapData[$i++]);
0308         $this->_glyphIndexArray[0x77]   = ord($cmapData[$i++]);
0309         $this->_glyphIndexArray[0x78]   = ord($cmapData[$i++]);
0310         $this->_glyphIndexArray[0x79]   = ord($cmapData[$i++]);
0311         $this->_glyphIndexArray[0x7a]   = ord($cmapData[$i++]);
0312         $this->_glyphIndexArray[0x7b]   = ord($cmapData[$i++]);
0313         $this->_glyphIndexArray[0x7c]   = ord($cmapData[$i++]);
0314         $this->_glyphIndexArray[0x7d]   = ord($cmapData[$i++]);
0315         $this->_glyphIndexArray[0x7e]   = ord($cmapData[$i++]);
0316         $this->_glyphIndexArray[0x7f]   = ord($cmapData[$i++]);
0317         $this->_glyphIndexArray[0xc4]   = ord($cmapData[$i++]);
0318         $this->_glyphIndexArray[0xc5]   = ord($cmapData[$i++]);
0319         $this->_glyphIndexArray[0xc7]   = ord($cmapData[$i++]);
0320         $this->_glyphIndexArray[0xc9]   = ord($cmapData[$i++]);
0321         $this->_glyphIndexArray[0xd1]   = ord($cmapData[$i++]);
0322         $this->_glyphIndexArray[0xd6]   = ord($cmapData[$i++]);
0323         $this->_glyphIndexArray[0xdc]   = ord($cmapData[$i++]);
0324         $this->_glyphIndexArray[0xe1]   = ord($cmapData[$i++]);
0325         $this->_glyphIndexArray[0xe0]   = ord($cmapData[$i++]);
0326         $this->_glyphIndexArray[0xe2]   = ord($cmapData[$i++]);
0327         $this->_glyphIndexArray[0xe4]   = ord($cmapData[$i++]);
0328         $this->_glyphIndexArray[0xe3]   = ord($cmapData[$i++]);
0329         $this->_glyphIndexArray[0xe5]   = ord($cmapData[$i++]);
0330         $this->_glyphIndexArray[0xe7]   = ord($cmapData[$i++]);
0331         $this->_glyphIndexArray[0xe9]   = ord($cmapData[$i++]);
0332         $this->_glyphIndexArray[0xe8]   = ord($cmapData[$i++]);
0333         $this->_glyphIndexArray[0xea]   = ord($cmapData[$i++]);
0334         $this->_glyphIndexArray[0xeb]   = ord($cmapData[$i++]);
0335         $this->_glyphIndexArray[0xed]   = ord($cmapData[$i++]);
0336         $this->_glyphIndexArray[0xec]   = ord($cmapData[$i++]);
0337         $this->_glyphIndexArray[0xee]   = ord($cmapData[$i++]);
0338         $this->_glyphIndexArray[0xef]   = ord($cmapData[$i++]);
0339         $this->_glyphIndexArray[0xf1]   = ord($cmapData[$i++]);
0340         $this->_glyphIndexArray[0xf3]   = ord($cmapData[$i++]);
0341         $this->_glyphIndexArray[0xf2]   = ord($cmapData[$i++]);
0342         $this->_glyphIndexArray[0xf4]   = ord($cmapData[$i++]);
0343         $this->_glyphIndexArray[0xf6]   = ord($cmapData[$i++]);
0344         $this->_glyphIndexArray[0xf5]   = ord($cmapData[$i++]);
0345         $this->_glyphIndexArray[0xfa]   = ord($cmapData[$i++]);
0346         $this->_glyphIndexArray[0xf9]   = ord($cmapData[$i++]);
0347         $this->_glyphIndexArray[0xfb]   = ord($cmapData[$i++]);
0348         $this->_glyphIndexArray[0xfc]   = ord($cmapData[$i++]);
0349         $this->_glyphIndexArray[0x2020] = ord($cmapData[$i++]);
0350         $this->_glyphIndexArray[0xb0]   = ord($cmapData[$i++]);
0351         $this->_glyphIndexArray[0xa2]   = ord($cmapData[$i++]);
0352         $this->_glyphIndexArray[0xa3]   = ord($cmapData[$i++]);
0353         $this->_glyphIndexArray[0xa7]   = ord($cmapData[$i++]);
0354         $this->_glyphIndexArray[0x2022] = ord($cmapData[$i++]);
0355         $this->_glyphIndexArray[0xb6]   = ord($cmapData[$i++]);
0356         $this->_glyphIndexArray[0xdf]   = ord($cmapData[$i++]);
0357         $this->_glyphIndexArray[0xae]   = ord($cmapData[$i++]);
0358         $this->_glyphIndexArray[0xa9]   = ord($cmapData[$i++]);
0359         $this->_glyphIndexArray[0x2122] = ord($cmapData[$i++]);
0360         $this->_glyphIndexArray[0xb4]   = ord($cmapData[$i++]);
0361         $this->_glyphIndexArray[0xa8]   = ord($cmapData[$i++]);
0362         $this->_glyphIndexArray[0x2260] = ord($cmapData[$i++]);
0363         $this->_glyphIndexArray[0xc6]   = ord($cmapData[$i++]);
0364         $this->_glyphIndexArray[0xd8]   = ord($cmapData[$i++]);
0365         $this->_glyphIndexArray[0x221e] = ord($cmapData[$i++]);
0366         $this->_glyphIndexArray[0xb1]   = ord($cmapData[$i++]);
0367         $this->_glyphIndexArray[0x2264] = ord($cmapData[$i++]);
0368         $this->_glyphIndexArray[0x2265] = ord($cmapData[$i++]);
0369         $this->_glyphIndexArray[0xa5]   = ord($cmapData[$i++]);
0370         $this->_glyphIndexArray[0xb5]   = ord($cmapData[$i++]);
0371         $this->_glyphIndexArray[0x2202] = ord($cmapData[$i++]);
0372         $this->_glyphIndexArray[0x2211] = ord($cmapData[$i++]);
0373         $this->_glyphIndexArray[0x220f] = ord($cmapData[$i++]);
0374         $this->_glyphIndexArray[0x03c0] = ord($cmapData[$i++]);
0375         $this->_glyphIndexArray[0x222b] = ord($cmapData[$i++]);
0376         $this->_glyphIndexArray[0xaa]   = ord($cmapData[$i++]);
0377         $this->_glyphIndexArray[0xba]   = ord($cmapData[$i++]);
0378         $this->_glyphIndexArray[0x03a9] = ord($cmapData[$i++]);
0379         $this->_glyphIndexArray[0xe6]   = ord($cmapData[$i++]);
0380         $this->_glyphIndexArray[0xf8]   = ord($cmapData[$i++]);
0381         $this->_glyphIndexArray[0xbf]   = ord($cmapData[$i++]);
0382         $this->_glyphIndexArray[0xa1]   = ord($cmapData[$i++]);
0383         $this->_glyphIndexArray[0xac]   = ord($cmapData[$i++]);
0384         $this->_glyphIndexArray[0x221a] = ord($cmapData[$i++]);
0385         $this->_glyphIndexArray[0x0192] = ord($cmapData[$i++]);
0386         $this->_glyphIndexArray[0x2248] = ord($cmapData[$i++]);
0387         $this->_glyphIndexArray[0x2206] = ord($cmapData[$i++]);
0388         $this->_glyphIndexArray[0xab]   = ord($cmapData[$i++]);
0389         $this->_glyphIndexArray[0xbb]   = ord($cmapData[$i++]);
0390         $this->_glyphIndexArray[0x2026] = ord($cmapData[$i++]);
0391         $this->_glyphIndexArray[0xa0]   = ord($cmapData[$i++]);
0392         $this->_glyphIndexArray[0xc0]   = ord($cmapData[$i++]);
0393         $this->_glyphIndexArray[0xc3]   = ord($cmapData[$i++]);
0394         $this->_glyphIndexArray[0xd5]   = ord($cmapData[$i++]);
0395         $this->_glyphIndexArray[0x0152] = ord($cmapData[$i++]);
0396         $this->_glyphIndexArray[0x0153] = ord($cmapData[$i++]);
0397         $this->_glyphIndexArray[0x2013] = ord($cmapData[$i++]);
0398         $this->_glyphIndexArray[0x2014] = ord($cmapData[$i++]);
0399         $this->_glyphIndexArray[0x201c] = ord($cmapData[$i++]);
0400         $this->_glyphIndexArray[0x201d] = ord($cmapData[$i++]);
0401         $this->_glyphIndexArray[0x2018] = ord($cmapData[$i++]);
0402         $this->_glyphIndexArray[0x2019] = ord($cmapData[$i++]);
0403         $this->_glyphIndexArray[0xf7]   = ord($cmapData[$i++]);
0404         $this->_glyphIndexArray[0x25ca] = ord($cmapData[$i++]);
0405         $this->_glyphIndexArray[0xff]   = ord($cmapData[$i++]);
0406         $this->_glyphIndexArray[0x0178] = ord($cmapData[$i++]);
0407         $this->_glyphIndexArray[0x2044] = ord($cmapData[$i++]);
0408         $this->_glyphIndexArray[0x20ac] = ord($cmapData[$i++]);
0409         $this->_glyphIndexArray[0x2039] = ord($cmapData[$i++]);
0410         $this->_glyphIndexArray[0x203a] = ord($cmapData[$i++]);
0411         $this->_glyphIndexArray[0xfb01] = ord($cmapData[$i++]);
0412         $this->_glyphIndexArray[0xfb02] = ord($cmapData[$i++]);
0413         $this->_glyphIndexArray[0x2021] = ord($cmapData[$i++]);
0414         $this->_glyphIndexArray[0xb7]   = ord($cmapData[$i++]);
0415         $this->_glyphIndexArray[0x201a] = ord($cmapData[$i++]);
0416         $this->_glyphIndexArray[0x201e] = ord($cmapData[$i++]);
0417         $this->_glyphIndexArray[0x2030] = ord($cmapData[$i++]);
0418         $this->_glyphIndexArray[0xc2]   = ord($cmapData[$i++]);
0419         $this->_glyphIndexArray[0xca]   = ord($cmapData[$i++]);
0420         $this->_glyphIndexArray[0xc1]   = ord($cmapData[$i++]);
0421         $this->_glyphIndexArray[0xcb]   = ord($cmapData[$i++]);
0422         $this->_glyphIndexArray[0xc8]   = ord($cmapData[$i++]);
0423         $this->_glyphIndexArray[0xcd]   = ord($cmapData[$i++]);
0424         $this->_glyphIndexArray[0xce]   = ord($cmapData[$i++]);
0425         $this->_glyphIndexArray[0xcf]   = ord($cmapData[$i++]);
0426         $this->_glyphIndexArray[0xcc]   = ord($cmapData[$i++]);
0427         $this->_glyphIndexArray[0xd3]   = ord($cmapData[$i++]);
0428         $this->_glyphIndexArray[0xd4]   = ord($cmapData[$i++]);
0429         $this->_glyphIndexArray[0xf8ff] = ord($cmapData[$i++]);
0430         $this->_glyphIndexArray[0xd2]   = ord($cmapData[$i++]);
0431         $this->_glyphIndexArray[0xda]   = ord($cmapData[$i++]);
0432         $this->_glyphIndexArray[0xdb]   = ord($cmapData[$i++]);
0433         $this->_glyphIndexArray[0xd9]   = ord($cmapData[$i++]);
0434         $this->_glyphIndexArray[0x0131] = ord($cmapData[$i++]);
0435         $this->_glyphIndexArray[0x02c6] = ord($cmapData[$i++]);
0436         $this->_glyphIndexArray[0x02dc] = ord($cmapData[$i++]);
0437         $this->_glyphIndexArray[0xaf]   = ord($cmapData[$i++]);
0438         $this->_glyphIndexArray[0x02d8] = ord($cmapData[$i++]);
0439         $this->_glyphIndexArray[0x02d9] = ord($cmapData[$i++]);
0440         $this->_glyphIndexArray[0x02da] = ord($cmapData[$i++]);
0441         $this->_glyphIndexArray[0xb8]   = ord($cmapData[$i++]);
0442         $this->_glyphIndexArray[0x02dd] = ord($cmapData[$i++]);
0443         $this->_glyphIndexArray[0x02db] = ord($cmapData[$i++]);
0444         $this->_glyphIndexArray[0x02c7] = ord($cmapData[$i]);
0445     }
0446 
0447 }