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
2declare(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 */
15namespace 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 */
37class 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}