pdf-rs 0.1.7-dev

A PDF parsing library written in Rust
Documentation
/// MacExpertEncoding as defined in Adobe Technical Note #5014
/// Used for expert fonts (small caps, old-style figures, etc.)
const MAC_EXPERT_ENCODING: [EncodingEntry; 256] = [
    // 0-31: Control characters (undefined)
    (0, ".notdef", None), (1, ".notdef", None), (2, ".notdef", None), (3, ".notdef", None),
    (4, ".notdef", None), (5, ".notdef", None), (6, ".notdef", None), (7, ".notdef", None),
    (8, ".notdef", None), (9, "tab", Some('\t')), (10, "lf", Some('\n')), (11, ".notdef", None),
    (12, "ff", Some('\x0C')), (13, "cr", Some('\r')), (14, ".notdef", None), (15, ".notdef", None),
    (16, ".notdef", None), (17, ".notdef", None), (18, ".notdef", None), (19, ".notdef", None),
    (20, ".notdef", None), (21, ".notdef", None), (22, ".notdef", None), (23, ".notdef", None),
    (24, ".notdef", None), (25, ".notdef", None), (26, ".notdef", None), (27, ".notdef", None),
    (28, ".notdef", None), (29, ".notdef", None), (30, ".notdef", None), (31, ".notdef", None),

    // 32-63: Basic punctuation and digits
    (32, "space", Some(' ')),
    (33, "exclam", Some('!')),
    (34, "quotedbl", Some('"')),
    (35, "numbersign", Some('#')),
    (36, "dollar", Some('$')),
    (37, "percent", Some('%')),
    (38, "ampersand", Some('&')),
    (39, "quoteright", Some('\'')),
    (40, "parenleft", Some('(')),
    (41, "parenright", Some(')')),
    (42, "asterisk", Some('*')),
    (43, "plus", Some('+')),
    (44, "comma", Some(',')),
    (45, "hyphen", Some('-')),
    (46, "period", Some('.')),
    (47, "slash", Some('/')),
    (48, "zero", Some('0')),
    (49, "one", Some('1')),
    (50, "two", Some('2')),
    (51, "three", Some('3')),
    (52, "four", Some('4')),
    (53, "five", Some('5')),
    (54, "six", Some('6')),
    (55, "seven", Some('7')),
    (56, "eight", Some('8')),
    (57, "nine", Some('9')),
    (58, "colon", Some(':')),
    (59, "semicolon", Some(';')),
    (60, "less", Some('<')),
    (61, "equal", Some('=')),
    (62, "greater", Some('>')),
    (63, "question", Some('?')),

    // 64-95: Uppercase letters and symbols
    (64, "at", Some('@')),
    (65, "A", Some('A')),
    (66, "B", Some('B')),
    (67, "C", Some('C')),
    (68, "D", Some('D')),
    (69, "E", Some('E')),
    (70, "F", Some('F')),
    (71, "G", Some('G')),
    (72, "H", Some('H')),
    (73, "I", Some('I')),
    (74, "J", Some('J')),
    (75, "K", Some('K')),
    (76, "L", Some('L')),
    (77, "M", Some('M')),
    (78, "N", Some('N')),
    (79, "O", Some('O')),
    (80, "P", Some('P')),
    (81, "Q", Some('Q')),
    (82, "R", Some('R')),
    (83, "S", Some('S')),
    (84, "T", Some('T')),
    (85, "U", Some('U')),
    (86, "V", Some('V')),
    (87, "W", Some('W')),
    (88, "X", Some('X')),
    (89, "Y", Some('Y')),
    (90, "Z", Some('Z')),
    (91, "bracketleft", Some('[')),
    (92, "backslash", Some('\\')),
    (93, "bracketright", Some(']')),
    (94, "asciicircum", Some('^')),
    (95, "underscore", Some('_')),

    // 96-127: Lowercase and symbols
    (96, "quoteleft", Some('`')),
    (97, "a", Some('a')),
    (98, "b", Some('b')),
    (99, "c", Some('c')),
    (100, "d", Some('d')),
    (101, "e", Some('e')),
    (102, "f", Some('f')),
    (103, "g", Some('g')),
    (104, "h", Some('h')),
    (105, "i", Some('i')),
    (106, "j", Some('j')),
    (107, "k", Some('k')),
    (108, "l", Some('l')),
    (109, "m", Some('m')),
    (110, "n", Some('n')),
    (111, "o", Some('o')),
    (112, "p", Some('p')),
    (113, "q", Some('q')),
    (114, "r", Some('r')),
    (115, "s", Some('s')),
    (116, "t", Some('t')),
    (117, "u", Some('u')),
    (118, "v", Some('v')),
    (119, "w", Some('w')),
    (120, "x", Some('x')),
    (121, "y", Some('y')),
    (122, "z", Some('z')),
    (123, "braceleft", Some('{')),
    (124, "bar", Some('|')),
    (125, "braceright", Some('}')),
    (126, "asciitilde", Some('~')),
    (127, ".notdef", None),

    // 128-159: Undefined in MacExpertEncoding
    (128, ".notdef", None), (129, ".notdef", None), (130, ".notdef", None), (131, ".notdef", None),
    (132, ".notdef", None), (133, ".notdef", None), (134, ".notdef", None), (135, ".notdef", None),
    (136, ".notdef", None), (137, ".notdef", None), (138, ".notdef", None), (139, ".notdef", None),
    (140, ".notdef", None), (141, ".notdef", None), (142, ".notdef", None), (143, ".notdef", None),
    (144, ".notdef", None), (145, ".notdef", None), (146, ".notdef", None), (147, ".notdef", None),
    (148, ".notdef", None), (149, ".notdef", None), (150, ".notdef", None), (151, ".notdef", None),
    (152, ".notdef", None), (153, ".notdef", None), (154, ".notdef", None), (155, ".notdef", None),
    (156, ".notdef", None), (157, ".notdef", None), (158, ".notdef", None), (159, ".notdef", None),

    // 160-255: Expert characters (small caps, superior, ligatures, etc.)
    (160, "space", Some('\u{00A0}')),           // no-break space
    (161, "exclamsmall", Some('!')),            // small '!'
    (162, "Hungarumlautsmall", None),           // double acute (no standard Unicode)
    (163, "dollaroldstyle", Some('$')),         // old-style $
    (164, "dollarsuperior", Some('$')),         // superior $
    (165, "ampersandsmall", Some('&')),         // small &
    (166, "Acutesmall", None),                  // acute accent (no standard)
    (167, "parenleftsuperior", None),           // superior (
    (168, "parenrightsuperior", None),          // superior )
    (169, "twosuperior", Some('²')),            // ²
    (170, "threesuperior", Some('³')),           // ³
    (171, "onesuperior", Some('¹')),             // ¹
    (172, "sixsuperior", Some('\u{2076}')),     // ⁶
    (173, "sevensuperior", Some('\u{2077}')),   // ⁷
    (174, "zerosuperior", Some('⁰')),            // ⁰
    (175, "foursuperior", Some('\u{2074}')),    // ⁴
    (176, "fivesuperior", Some('\u{2075}')),    // ⁵
    (177, "ninesuperior", Some('\u{2079}')),    // ⁹
    (178, "eightsuperior", Some('\u{2078}')),   // ⁸
    (179, "commasuperior", None),               // superior ,
    (180, "hyphensuperior", None),              // superior -
    (181, "periodsuperior", None),              // superior .
    (182, "questiondownsmall", Some('¿')),      // ¿ small
    (183, "Gravesmall", None),                  // grave accent
    (184, "Asmallcap", Some('A')),              // small cap A → semantically 'A'
    (185, "Bsmallcap", Some('B')),
    (186, "Csmallcap", Some('C')),
    (187, "Dsmallcap", Some('D')),
    (188, "Esmallcap", Some('E')),
    (189, "Fsmallcap", Some('F')),
    (190, "Gsmallcap", Some('G')),
    (191, "Hsmallcap", Some('H')),
    (192, "Ismallcap", Some('I')),
    (193, "Jsmallcap", Some('J')),
    (194, "Ksmallcap", Some('K')),
    (195, "Lsmallcap", Some('L')),
    (196, "Msmallcap", Some('M')),
    (197, "Nsmallcap", Some('N')),
    (198, "Osmallcap", Some('O')),
    (199, "Psmallcap", Some('P')),
    (200, "Qsmallcap", Some('Q')),
    (201, "Rsmallcap", Some('R')),
    (202, "Ssmallcap", Some('S')),
    (203, "Tsmallcap", Some('T')),
    (204, "Usmallcap", Some('U')),
    (205, "Vsmallcap", Some('V')),
    (206, "Wsmallcap", Some('W')),
    (207, "Xsmallcap", Some('X')),
    (208, "Ysmallcap", Some('Y')),
    (209, "Zsmallcap", Some('Z')),
    (210, "exclamdownsmall", Some('¡')),        // ¡ small
    (211, "centoldstyle", Some('¢')),           // old-style cent → map to ¢
    (212, "tonossuperior", None),               // tonos (Greek)
    (213, "caronsmall", None),                  // caron (háček)
    (214, "tonossuperior", None),
    (215, "hungarumlautnorwegian", Some('˝')),  // Hungarian umlaut
    (216, "Lslashsmall", None),
    (217, "circlecenteropen", None),
    (218, "periodcenteredsmall", Some('·')),    // middle dot
    (219, "colonsmall", Some(':')),
    (220, "commareversed", Some(',')),
    (221, "hyphenbullet", Some('•')),           // bullet or dash
    (222, "gravefullstop", None),
    (223, "afii57929", None),
    (224, "afii57930", None),
    (225, "afii57641", None),
    (226, "afii57642", None),
    (227, "afii57643", None),
    (228, "afii57644", None),
    (229, "afii57645", None),
    (230, "afii57658", None),
    (231, "afii57659", None),
    (232, "afii57660", None),
    (233, "afii57661", None),
    (234, "afii57662", None),
    (235, "afii57663", None),
    (236, "afii57664", None),
    (237, "afii57665", None),
    (238, "afii57666", None),
    (239, "afii57667", None),
    (240, "afii57668", None),
    (241, "afii57669", None),
    (242, "afii57670", None),
    (243, "afii57671", None),
    (244, "afii57672", None),
    (245, "afii57673", None),
    (246, "afii57674", None),
    (247, "afii57675", None),
    (248, "afii57676", None),
    (249, "afii57677", None),
    (250, "afii57678", None),
    (251, "afii57679", None),
    (252, "afii57680", None),
    (253, "afii57681", None),
    (254, "afii57682", None),
    (255, "afii57683", None),
];