| //======================================================================== |
| // |
| // FoFiEncodings.cc |
| // |
| // Copyright 1999-2003 Glyph & Cog, LLC |
| // |
| //======================================================================== |
| |
| //======================================================================== |
| // |
| // Modified under the Poppler project - http://poppler.freedesktop.org |
| // |
| // All changes made under the Poppler project to this file are licensed |
| // under GPL version 2 or later |
| // |
| // Copyright (C) 2016 Albert Astals Cid <aacid@kde.org> |
| // Copyright (C) 2019 Volker Krause <vkrause@kde.org> |
| // |
| // To see a description of the changes please see the Changelog file that |
| // came with your tarball or type make ChangeLog if you are building from git |
| // |
| //======================================================================== |
| |
| #include <config.h> |
| |
| #include <cstdlib> |
| #include "FoFiEncodings.h" |
| |
| //------------------------------------------------------------------------ |
| // Type 1 and 1C font data |
| //------------------------------------------------------------------------ |
| |
| const char *const fofiType1StandardEncoding[256] = { nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "space", |
| "exclam", |
| "quotedbl", |
| "numbersign", |
| "dollar", |
| "percent", |
| "ampersand", |
| "quoteright", |
| "parenleft", |
| "parenright", |
| "asterisk", |
| "plus", |
| "comma", |
| "hyphen", |
| "period", |
| "slash", |
| "zero", |
| "one", |
| "two", |
| "three", |
| "four", |
| "five", |
| "six", |
| "seven", |
| "eight", |
| "nine", |
| "colon", |
| "semicolon", |
| "less", |
| "equal", |
| "greater", |
| "question", |
| "at", |
| "A", |
| "B", |
| "C", |
| "D", |
| "E", |
| "F", |
| "G", |
| "H", |
| "I", |
| "J", |
| "K", |
| "L", |
| "M", |
| "N", |
| "O", |
| "P", |
| "Q", |
| "R", |
| "S", |
| "T", |
| "U", |
| "V", |
| "W", |
| "X", |
| "Y", |
| "Z", |
| "bracketleft", |
| "backslash", |
| "bracketright", |
| "asciicircum", |
| "underscore", |
| "quoteleft", |
| "a", |
| "b", |
| "c", |
| "d", |
| "e", |
| "f", |
| "g", |
| "h", |
| "i", |
| "j", |
| "k", |
| "l", |
| "m", |
| "n", |
| "o", |
| "p", |
| "q", |
| "r", |
| "s", |
| "t", |
| "u", |
| "v", |
| "w", |
| "x", |
| "y", |
| "z", |
| "braceleft", |
| "bar", |
| "braceright", |
| "asciitilde", |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "exclamdown", |
| "cent", |
| "sterling", |
| "fraction", |
| "yen", |
| "florin", |
| "section", |
| "currency", |
| "quotesingle", |
| "quotedblleft", |
| "guillemotleft", |
| "guilsinglleft", |
| "guilsinglright", |
| "fi", |
| "fl", |
| nullptr, |
| "endash", |
| "dagger", |
| "daggerdbl", |
| "periodcentered", |
| nullptr, |
| "paragraph", |
| "bullet", |
| "quotesinglbase", |
| "quotedblbase", |
| "quotedblright", |
| "guillemotright", |
| "ellipsis", |
| "perthousand", |
| nullptr, |
| "questiondown", |
| nullptr, |
| "grave", |
| "acute", |
| "circumflex", |
| "tilde", |
| "macron", |
| "breve", |
| "dotaccent", |
| "dieresis", |
| nullptr, |
| "ring", |
| "cedilla", |
| nullptr, |
| "hungarumlaut", |
| "ogonek", |
| "caron", |
| "emdash", |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "AE", |
| nullptr, |
| "ordfeminine", |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "Lslash", |
| "Oslash", |
| "OE", |
| "ordmasculine", |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "ae", |
| nullptr, |
| nullptr, |
| nullptr, |
| "dotlessi", |
| nullptr, |
| nullptr, |
| "lslash", |
| "oslash", |
| "oe", |
| "germandbls", |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr }; |
| |
| const char *const fofiType1ExpertEncoding[256] = { nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "space", |
| "exclamsmall", |
| "Hungarumlautsmall", |
| nullptr, |
| "dollaroldstyle", |
| "dollarsuperior", |
| "ampersandsmall", |
| "Acutesmall", |
| "parenleftsuperior", |
| "parenrightsuperior", |
| "twodotenleader", |
| "onedotenleader", |
| "comma", |
| "hyphen", |
| "period", |
| "fraction", |
| "zerooldstyle", |
| "oneoldstyle", |
| "twooldstyle", |
| "threeoldstyle", |
| "fouroldstyle", |
| "fiveoldstyle", |
| "sixoldstyle", |
| "sevenoldstyle", |
| "eightoldstyle", |
| "nineoldstyle", |
| "colon", |
| "semicolon", |
| "commasuperior", |
| "threequartersemdash", |
| "periodsuperior", |
| "questionsmall", |
| nullptr, |
| "asuperior", |
| "bsuperior", |
| "centsuperior", |
| "dsuperior", |
| "esuperior", |
| nullptr, |
| nullptr, |
| nullptr, |
| "isuperior", |
| nullptr, |
| nullptr, |
| "lsuperior", |
| "msuperior", |
| "nsuperior", |
| "osuperior", |
| nullptr, |
| nullptr, |
| "rsuperior", |
| "ssuperior", |
| "tsuperior", |
| nullptr, |
| "ff", |
| "fi", |
| "fl", |
| "ffi", |
| "ffl", |
| "parenleftinferior", |
| nullptr, |
| "parenrightinferior", |
| "Circumflexsmall", |
| "hyphensuperior", |
| "Gravesmall", |
| "Asmall", |
| "Bsmall", |
| "Csmall", |
| "Dsmall", |
| "Esmall", |
| "Fsmall", |
| "Gsmall", |
| "Hsmall", |
| "Ismall", |
| "Jsmall", |
| "Ksmall", |
| "Lsmall", |
| "Msmall", |
| "Nsmall", |
| "Osmall", |
| "Psmall", |
| "Qsmall", |
| "Rsmall", |
| "Ssmall", |
| "Tsmall", |
| "Usmall", |
| "Vsmall", |
| "Wsmall", |
| "Xsmall", |
| "Ysmall", |
| "Zsmall", |
| "colonmonetary", |
| "onefitted", |
| "rupiah", |
| "Tildesmall", |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| nullptr, |
| "exclamdownsmall", |
| "centoldstyle", |
| "Lslashsmall", |
| nullptr, |
| nullptr, |
| "Scaronsmall", |
| "Zcaronsmall", |
| "Dieresissmall", |
| "Brevesmall", |
| "Caronsmall", |
| nullptr, |
| "Dotaccentsmall", |
| nullptr, |
| nullptr, |
| "Macronsmall", |
| nullptr, |
| nullptr, |
| "figuredash", |
| "hypheninferior", |
| nullptr, |
| nullptr, |
| "Ogoneksmall", |
| "Ringsmall", |
| "Cedillasmall", |
| nullptr, |
| nullptr, |
| nullptr, |
| "onequarter", |
| "onehalf", |
| "threequarters", |
| "questiondownsmall", |
| "oneeighth", |
| "threeeighths", |
| "fiveeighths", |
| "seveneighths", |
| "onethird", |
| "twothirds", |
| nullptr, |
| nullptr, |
| "zerosuperior", |
| "onesuperior", |
| "twosuperior", |
| "threesuperior", |
| "foursuperior", |
| "fivesuperior", |
| "sixsuperior", |
| "sevensuperior", |
| "eightsuperior", |
| "ninesuperior", |
| "zeroinferior", |
| "oneinferior", |
| "twoinferior", |
| "threeinferior", |
| "fourinferior", |
| "fiveinferior", |
| "sixinferior", |
| "seveninferior", |
| "eightinferior", |
| "nineinferior", |
| "centinferior", |
| "dollarinferior", |
| "periodinferior", |
| "commainferior", |
| "Agravesmall", |
| "Aacutesmall", |
| "Acircumflexsmall", |
| "Atildesmall", |
| "Adieresissmall", |
| "Aringsmall", |
| "AEsmall", |
| "Ccedillasmall", |
| "Egravesmall", |
| "Eacutesmall", |
| "Ecircumflexsmall", |
| "Edieresissmall", |
| "Igravesmall", |
| "Iacutesmall", |
| "Icircumflexsmall", |
| "Idieresissmall", |
| "Ethsmall", |
| "Ntildesmall", |
| "Ogravesmall", |
| "Oacutesmall", |
| "Ocircumflexsmall", |
| "Otildesmall", |
| "Odieresissmall", |
| "OEsmall", |
| "Oslashsmall", |
| "Ugravesmall", |
| "Uacutesmall", |
| "Ucircumflexsmall", |
| "Udieresissmall", |
| "Yacutesmall", |
| "Thornsmall", |
| "Ydieresissmall" }; |
| |
| //------------------------------------------------------------------------ |
| // Type 1C font data |
| //------------------------------------------------------------------------ |
| |
| const char *fofiType1CStdStrings[391] = { ".notdef", |
| "space", |
| "exclam", |
| "quotedbl", |
| "numbersign", |
| "dollar", |
| "percent", |
| "ampersand", |
| "quoteright", |
| "parenleft", |
| "parenright", |
| "asterisk", |
| "plus", |
| "comma", |
| "hyphen", |
| "period", |
| "slash", |
| "zero", |
| "one", |
| "two", |
| "three", |
| "four", |
| "five", |
| "six", |
| "seven", |
| "eight", |
| "nine", |
| "colon", |
| "semicolon", |
| "less", |
| "equal", |
| "greater", |
| "question", |
| "at", |
| "A", |
| "B", |
| "C", |
| "D", |
| "E", |
| "F", |
| "G", |
| "H", |
| "I", |
| "J", |
| "K", |
| "L", |
| "M", |
| "N", |
| "O", |
| "P", |
| "Q", |
| "R", |
| "S", |
| "T", |
| "U", |
| "V", |
| "W", |
| "X", |
| "Y", |
| "Z", |
| "bracketleft", |
| "backslash", |
| "bracketright", |
| "asciicircum", |
| "underscore", |
| "quoteleft", |
| "a", |
| "b", |
| "c", |
| "d", |
| "e", |
| "f", |
| "g", |
| "h", |
| "i", |
| "j", |
| "k", |
| "l", |
| "m", |
| "n", |
| "o", |
| "p", |
| "q", |
| "r", |
| "s", |
| "t", |
| "u", |
| "v", |
| "w", |
| "x", |
| "y", |
| "z", |
| "braceleft", |
| "bar", |
| "braceright", |
| "asciitilde", |
| "exclamdown", |
| "cent", |
| "sterling", |
| "fraction", |
| "yen", |
| "florin", |
| "section", |
| "currency", |
| "quotesingle", |
| "quotedblleft", |
| "guillemotleft", |
| "guilsinglleft", |
| "guilsinglright", |
| "fi", |
| "fl", |
| "endash", |
| "dagger", |
| "daggerdbl", |
| "periodcentered", |
| "paragraph", |
| "bullet", |
| "quotesinglbase", |
| "quotedblbase", |
| "quotedblright", |
| "guillemotright", |
| "ellipsis", |
| "perthousand", |
| "questiondown", |
| "grave", |
| "acute", |
| "circumflex", |
| "tilde", |
| "macron", |
| "breve", |
| "dotaccent", |
| "dieresis", |
| "ring", |
| "cedilla", |
| "hungarumlaut", |
| "ogonek", |
| "caron", |
| "emdash", |
| "AE", |
| "ordfeminine", |
| "Lslash", |
| "Oslash", |
| "OE", |
| "ordmasculine", |
| "ae", |
| "dotlessi", |
| "lslash", |
| "oslash", |
| "oe", |
| "germandbls", |
| "onesuperior", |
| "logicalnot", |
| "mu", |
| "trademark", |
| "Eth", |
| "onehalf", |
| "plusminus", |
| "Thorn", |
| "onequarter", |
| "divide", |
| "brokenbar", |
| "degree", |
| "thorn", |
| "threequarters", |
| "twosuperior", |
| "registered", |
| "minus", |
| "eth", |
| "multiply", |
| "threesuperior", |
| "copyright", |
| "Aacute", |
| "Acircumflex", |
| "Adieresis", |
| "Agrave", |
| "Aring", |
| "Atilde", |
| "Ccedilla", |
| "Eacute", |
| "Ecircumflex", |
| "Edieresis", |
| "Egrave", |
| "Iacute", |
| "Icircumflex", |
| "Idieresis", |
| "Igrave", |
| "Ntilde", |
| "Oacute", |
| "Ocircumflex", |
| "Odieresis", |
| "Ograve", |
| "Otilde", |
| "Scaron", |
| "Uacute", |
| "Ucircumflex", |
| "Udieresis", |
| "Ugrave", |
| "Yacute", |
| "Ydieresis", |
| "Zcaron", |
| "aacute", |
| "acircumflex", |
| "adieresis", |
| "agrave", |
| "aring", |
| "atilde", |
| "ccedilla", |
| "eacute", |
| "ecircumflex", |
| "edieresis", |
| "egrave", |
| "iacute", |
| "icircumflex", |
| "idieresis", |
| "igrave", |
| "ntilde", |
| "oacute", |
| "ocircumflex", |
| "odieresis", |
| "ograve", |
| "otilde", |
| "scaron", |
| "uacute", |
| "ucircumflex", |
| "udieresis", |
| "ugrave", |
| "yacute", |
| "ydieresis", |
| "zcaron", |
| "exclamsmall", |
| "Hungarumlautsmall", |
| "dollaroldstyle", |
| "dollarsuperior", |
| "ampersandsmall", |
| "Acutesmall", |
| "parenleftsuperior", |
| "parenrightsuperior", |
| "twodotenleader", |
| "onedotenleader", |
| "zerooldstyle", |
| "oneoldstyle", |
| "twooldstyle", |
| "threeoldstyle", |
| "fouroldstyle", |
| "fiveoldstyle", |
| "sixoldstyle", |
| "sevenoldstyle", |
| "eightoldstyle", |
| "nineoldstyle", |
| "commasuperior", |
| "threequartersemdash", |
| "periodsuperior", |
| "questionsmall", |
| "asuperior", |
| "bsuperior", |
| "centsuperior", |
| "dsuperior", |
| "esuperior", |
| "isuperior", |
| "lsuperior", |
| "msuperior", |
| "nsuperior", |
| "osuperior", |
| "rsuperior", |
| "ssuperior", |
| "tsuperior", |
| "ff", |
| "ffi", |
| "ffl", |
| "parenleftinferior", |
| "parenrightinferior", |
| "Circumflexsmall", |
| "hyphensuperior", |
| "Gravesmall", |
| "Asmall", |
| "Bsmall", |
| "Csmall", |
| "Dsmall", |
| "Esmall", |
| "Fsmall", |
| "Gsmall", |
| "Hsmall", |
| "Ismall", |
| "Jsmall", |
| "Ksmall", |
| "Lsmall", |
| "Msmall", |
| "Nsmall", |
| "Osmall", |
| "Psmall", |
| "Qsmall", |
| "Rsmall", |
| "Ssmall", |
| "Tsmall", |
| "Usmall", |
| "Vsmall", |
| "Wsmall", |
| "Xsmall", |
| "Ysmall", |
| "Zsmall", |
| "colonmonetary", |
| "onefitted", |
| "rupiah", |
| "Tildesmall", |
| "exclamdownsmall", |
| "centoldstyle", |
| "Lslashsmall", |
| "Scaronsmall", |
| "Zcaronsmall", |
| "Dieresissmall", |
| "Brevesmall", |
| "Caronsmall", |
| "Dotaccentsmall", |
| "Macronsmall", |
| "figuredash", |
| "hypheninferior", |
| "Ogoneksmall", |
| "Ringsmall", |
| "Cedillasmall", |
| "questiondownsmall", |
| "oneeighth", |
| "threeeighths", |
| "fiveeighths", |
| "seveneighths", |
| "onethird", |
| "twothirds", |
| "zerosuperior", |
| "foursuperior", |
| "fivesuperior", |
| "sixsuperior", |
| "sevensuperior", |
| "eightsuperior", |
| "ninesuperior", |
| "zeroinferior", |
| "oneinferior", |
| "twoinferior", |
| "threeinferior", |
| "fourinferior", |
| "fiveinferior", |
| "sixinferior", |
| "seveninferior", |
| "eightinferior", |
| "nineinferior", |
| "centinferior", |
| "dollarinferior", |
| "periodinferior", |
| "commainferior", |
| "Agravesmall", |
| "Aacutesmall", |
| "Acircumflexsmall", |
| "Atildesmall", |
| "Adieresissmall", |
| "Aringsmall", |
| "AEsmall", |
| "Ccedillasmall", |
| "Egravesmall", |
| "Eacutesmall", |
| "Ecircumflexsmall", |
| "Edieresissmall", |
| "Igravesmall", |
| "Iacutesmall", |
| "Icircumflexsmall", |
| "Idieresissmall", |
| "Ethsmall", |
| "Ntildesmall", |
| "Ogravesmall", |
| "Oacutesmall", |
| "Ocircumflexsmall", |
| "Otildesmall", |
| "Odieresissmall", |
| "OEsmall", |
| "Oslashsmall", |
| "Ugravesmall", |
| "Uacutesmall", |
| "Ucircumflexsmall", |
| "Udieresissmall", |
| "Yacutesmall", |
| "Thornsmall", |
| "Ydieresissmall", |
| "001.000", |
| "001.001", |
| "001.002", |
| "001.003", |
| "Black", |
| "Bold", |
| "Book", |
| "Light", |
| "Medium", |
| "Regular", |
| "Roman", |
| "Semibold" }; |
| |
| const unsigned short fofiType1CISOAdobeCharset[229] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, |
| 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, |
| 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, |
| 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, |
| 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, |
| 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, |
| 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228 }; |
| |
| const unsigned short fofiType1CExpertCharset[166] = { 0, 1, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 13, 14, 15, 99, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 27, 28, 249, 250, 251, 252, 253, 254, |
| 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 109, 110, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, |
| 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 158, 155, |
| 163, 319, 320, 321, 322, 323, 324, 325, 326, 150, 164, 169, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, |
| 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378 }; |
| |
| const unsigned short fofiType1CExpertSubsetCharset[87] = { 0, 1, 231, 232, 235, 236, 237, 238, 13, 14, 15, 99, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 27, 28, 249, 250, 251, 253, 254, |
| 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 109, 110, 267, 268, 269, 270, 272, 300, 301, 302, 305, 314, 315, 158, 155, 163, 320, |
| 321, 322, 323, 324, 325, 326, 150, 164, 169, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346 }; |