Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | n/a |
0 / 0 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
|||
| StandardEncoding | n/a |
0 / 0 |
n/a |
0 / 0 |
0 | n/a |
0 / 0 |
|||
| 1 | <?php |
| 2 | declare(strict_types=1); |
| 3 | /** |
| 4 | * Pop PHP Framework (https://www.popphp.org/) |
| 5 | * |
| 6 | * @link https://github.com/popphp/popphp-framework |
| 7 | * @author Nick Sagona, III <nick@popphp.org> |
| 8 | * @copyright Copyright (c) 2009-2026 Nick Sagona, III |
| 9 | * @license https://www.popphp.org/license New BSD License |
| 10 | */ |
| 11 | |
| 12 | /** |
| 13 | * @namespace |
| 14 | */ |
| 15 | namespace Pop\Pdf\Extract\Font\Encoding; |
| 16 | |
| 17 | /** |
| 18 | * Pdf extract StandardEncoding table class |
| 19 | * |
| 20 | * Only the ASCII range (0x20-0x7E) is populated - StandardEncoding's upper |
| 21 | * byte range (0x80-0xFF) differs from Latin-1/WinAnsi in specific, |
| 22 | * non-contiguous ways this project doesn't have a verified reference table |
| 23 | * for; those bytes are intentionally left unmapped rather than guessed at. |
| 24 | * |
| 25 | * Per Adobe's StandardEncoding (PDF spec Annex D), codes 0x27 and 0x60 are |
| 26 | * quoteright (U+2019) and quoteleft (U+2018) respectively, not the plain |
| 27 | * ASCII apostrophe/backtick - a well-known deviation from the rest of the |
| 28 | * ASCII range that this table honors. |
| 29 | * |
| 30 | * @category Pop |
| 31 | * @package Pop\Pdf |
| 32 | * @author Nick Sagona, III <nick@popphp.org> |
| 33 | * @copyright Copyright (c) 2009-2026 Nick Sagona, III |
| 34 | * @license https://www.popphp.org/license New BSD License |
| 35 | * @version 6.0.0 |
| 36 | */ |
| 37 | class StandardEncoding |
| 38 | { |
| 39 | |
| 40 | /** |
| 41 | * StandardEncoding byte-to-Unicode codepoint table |
| 42 | */ |
| 43 | public const TABLE = [ |
| 44 | 0x20 => 0x0020, 0x21 => 0x0021, 0x22 => 0x0022, 0x23 => 0x0023, 0x24 => 0x0024, |
| 45 | 0x25 => 0x0025, 0x26 => 0x0026, 0x27 => 0x2019, 0x28 => 0x0028, 0x29 => 0x0029, |
| 46 | 0x2A => 0x002A, 0x2B => 0x002B, 0x2C => 0x002C, 0x2D => 0x002D, 0x2E => 0x002E, |
| 47 | 0x2F => 0x002F, 0x30 => 0x0030, 0x31 => 0x0031, 0x32 => 0x0032, 0x33 => 0x0033, |
| 48 | 0x34 => 0x0034, 0x35 => 0x0035, 0x36 => 0x0036, 0x37 => 0x0037, 0x38 => 0x0038, |
| 49 | 0x39 => 0x0039, 0x3A => 0x003A, 0x3B => 0x003B, 0x3C => 0x003C, 0x3D => 0x003D, |
| 50 | 0x3E => 0x003E, 0x3F => 0x003F, 0x40 => 0x0040, 0x41 => 0x0041, 0x42 => 0x0042, |
| 51 | 0x43 => 0x0043, 0x44 => 0x0044, 0x45 => 0x0045, 0x46 => 0x0046, 0x47 => 0x0047, |
| 52 | 0x48 => 0x0048, 0x49 => 0x0049, 0x4A => 0x004A, 0x4B => 0x004B, 0x4C => 0x004C, |
| 53 | 0x4D => 0x004D, 0x4E => 0x004E, 0x4F => 0x004F, 0x50 => 0x0050, 0x51 => 0x0051, |
| 54 | 0x52 => 0x0052, 0x53 => 0x0053, 0x54 => 0x0054, 0x55 => 0x0055, 0x56 => 0x0056, |
| 55 | 0x57 => 0x0057, 0x58 => 0x0058, 0x59 => 0x0059, 0x5A => 0x005A, 0x5B => 0x005B, |
| 56 | 0x5C => 0x005C, 0x5D => 0x005D, 0x5E => 0x005E, 0x5F => 0x005F, 0x60 => 0x2018, |
| 57 | 0x61 => 0x0061, 0x62 => 0x0062, 0x63 => 0x0063, 0x64 => 0x0064, 0x65 => 0x0065, |
| 58 | 0x66 => 0x0066, 0x67 => 0x0067, 0x68 => 0x0068, 0x69 => 0x0069, 0x6A => 0x006A, |
| 59 | 0x6B => 0x006B, 0x6C => 0x006C, 0x6D => 0x006D, 0x6E => 0x006E, 0x6F => 0x006F, |
| 60 | 0x70 => 0x0070, 0x71 => 0x0071, 0x72 => 0x0072, 0x73 => 0x0073, 0x74 => 0x0074, |
| 61 | 0x75 => 0x0075, 0x76 => 0x0076, 0x77 => 0x0077, 0x78 => 0x0078, 0x79 => 0x0079, |
| 62 | 0x7A => 0x007A, 0x7B => 0x007B, 0x7C => 0x007C, 0x7D => 0x007D, 0x7E => 0x007E, |
| 63 | ]; |
| 64 | |
| 65 | } |