using System;
using System.Collections;
namespace sharpPDF.Fonts{
/// <summary>
/// Class that contains several methods for the conversion between Unicode and Glyphs
/// </summary>
internal abstract class GlyphConverter
{
#region UNICODE
private static int[] _unicode = {
0x0041,
0x00C6,
0x01FC,
0xF7E6,
0x00C1,
0xF7E1,
0x0102,
0x00C2,
0xF7E2,
0xF6C9,
0xF7B4,
0x00C4,
0xF7E4,
0x00C0,
0xF7E0,
0x0391,
0x0386,
0x0100,
0x0104,
0x00C5,
0x01FA,
0xF7E5,
0xF761,
0x00C3,
0xF7E3,
0x0042,
0x0392,
0xF6F4,
0xF762,
0x0043,
0x0106,
0xF6CA,
0xF6F5,
0x010C,
0x00C7,
0xF7E7,
0x0108,
0x010A,
0xF7B8,
0x03A7,
0xF6F6,
0xF763,
0x0044,
0x010E,
0x0110,
0x2206,
0x0394,
0xF6CB,
0xF6CC,
0xF6CD,
0xF7A8,
0xF6F7,
0xF764,
0x0045,
0x00C9,
0xF7E9,
0x0114,
0x011A,
0x00CA,
0xF7EA,
0x00CB,
0xF7EB,
0x0116,
0x00C8,
0xF7E8,
0x0112,
0x014A,
0x0118,
0x0395,
0x0388,
0xF765,
0x0397,
0x0389,
0x00D0,
0xF7F0,
0x20AC,
0x0046,
0xF766,
0x0047,
0x0393,
0x011E,
0x01E6,
0x011C,
0x0122,
0x0120,
0xF6CE,
0xF760,
0xF767,
0x0048,
0x25CF,
0x25AA,
0x25AB,
0x25A1,
0x0126,
0x0124,
0xF768,
0xF6CF,
0xF6F8,
0x0049,
0x0132,
0x00CD,
0xF7ED,
0x012C,
0x00CE,
0xF7EE,
0x00CF,
0xF7EF,
0x0130,
0x2111,
0x00CC,
0xF7EC,
0x012A,
0x012E,
0x0399,
0x03AA,
0x038A,
0xF769,
0x0128,
0x004A,
0x0134,
0xF76A,
0x004B,
0x039A,
0x0136,
0xF76B,
0x004C,
0xF6BF,
0x0139,
0x039B,
0x013D,
0x013B,
0x013F,
0x0141,
0xF6F9,
0xF76C,
0x004D,
0xF6D0,
0xF7AF,
0xF76D,
0x039C,
0x004E,
0x0143,
0x0147,
0x0145,
0xF76E,
0x00D1,
0xF7F1,
0x039D,
0x004F,
0x0152,
0xF6FA,
0x00D3,
0xF7F3,
0x014E,
0x00D4,
0xF7F4,
0x00D6,
0xF7F6,
0xF6FB,
0x00D2,
0xF7F2,
0x01A0,
0x0150,
0x014C,
0x2126,
0x03A9,
0x038F,
0x039F,
0x038C,
0x00D8,
0x01FE,
0xF7F8,
0xF76F,
0x00D5,
0xF7F5,
0x0050,
0x03A6,
0x03A0,
0x03A8,
0xF770,
0x0051,
0xF771,
0x0052,
0x0154,
0x0158,
0x0156,
0x211C,
0x03A1,
0xF6FC,
0xF772,
0x0053,
0x250C,
0x2514,
0x2510,
0x2518,
0x253C,
0x252C,
0x2534,
0x251C,
0x2524,
0x2500,
0x2502,
0x2561,
0x2562,
0x2556,
0x2555,
0x2563,
0x2551,
0x2557,
0x255D,
0x255C,
0x255B,
0x255E,
0x255F,
0x255A,
0x2554,
0x2569,
0x2566,
0x2560,
0x2550,
0x256C,
0x2567,
0x2568,
0x2564,
0x2565,
0x2559,
0x2558,
0x2552,
0x2553,
0x256B,
0x256A,
0x015A,
0x0160,
0xF6FD,
0x015E,
0xF6C1,
0x015C,
0x0218,
0x03A3,
0xF773,
0x0054,
0x03A4,
0x0166,
0x0164,
0x0162,
0x021A,
0x0398,
0x00DE,
0xF7FE,
0xF6FE,
0xF774,
0x0055,
0x00DA,
0xF7FA,
0x016C,
0x00DB,
0xF7FB,
0x00DC,
0xF7FC,
0x00D9,
0xF7F9,
0x01AF,
0x0170,
0x016A,
0x0172,
0x03A5,
0x03D2,
0x03AB,
0x038E,
0x016E,
0xF775,
0x0168,
0x0056,
0xF776,
0x0057,
0x1E82,
0x0174,
0x1E84,
0x1E80,
0xF777,
0x0058,
0x039E,
0xF778,
0x0059,
0x00DD,
0xF7FD,
0x0176,
0x0178,
0xF7FF,
0x1EF2,
0xF779,
0x005A,
0x0179,
0x017D,
0xF6FF,
0x017B,
0x0396,
0xF77A,
0x0061,
0x00E1,
0x0103,
0x00E2,
0x00B4,
0x0301,
0x00E4,
0x00E6,
0x01FD,
0x2015,
0x0410,
0x0411,
0x0412,
0x0413,
0x0414,
0x0415,
0x0401,
0x0416,
0x0417,
0x0418,
0x0419,
0x041A,
0x041B,
0x041C,
0x041D,
0x041E,
0x041F,
0x0420,
0x0421,
0x0422,
0x0423,
0x0424,
0x0425,
0x0426,
0x0427,
0x0428,
0x0429,
0x042A,
0x042B,
0x042C,
0x042D,
0x042E,
0x042F,
0x0490,
0x0402,
0x0403,
0x0404,
0x0405,
0x0406,
0x0407,
0x0408,
0x0409,
0x040A,
0x040B,
0x040C,
0x040E,
0xF6C4,
0xF6C5,
0x0430,
0x0431,
0x0432,
0x0433,
0x0434,
0x0435,
0x0451,
0x0436,
0x0437,
0x0438,
0x0439,
0x043A,
0x043B,
0x043C,
0x043D,
0x043E,
0x043F,
0x0440,
0x0441,
0x0442,
0x0443,
0x0444,
0x0445,
0x0446,
0x0447,
0x0448,
0x0449,
0x044A,
0x044B,
0x044C,
0x044D,
0x044E,
0x044F,
0x0491,
0x0452,
0x0453,
0x0454,
0x0455,
0x0456,
0x0457,
0x0458,
0x0459,
0x045A,
0x045B,
0x045C,
0x045E,
0x040F,
0x0462,
0x0472,
0x0474,
0xF6C6,
0x045F,
0x0463,
0x0473,
0x0475,
0xF6C7,
0xF6C8,
0x04D9,
0x200E,
0x200F,
0x200D,
0x066A,
0x060C,
0x0660,
0x0661,
0x0662,
0x0663,
0x0664,
0x0665,
0x0666,
0x0667,
0x0668,
0x0669,
0x061B,
0x061F,
0x0621,
0x0622,
0x0623,
0x0624,
0x0625,
0x0626,
0x0627,
0x0628,
0x0629,
0x062A,
0x062B,
0x062C,
0x062D,
0x062E,
0x062F,
0x0630,
0x0631,
0x0632,
0x0633,
0x0634,
0x0635,
0x0636,
0x0637,
0x0638,
0x0639,
0x063A,
0x0640,
0x0641,
0x0642,
0x0643,
0x0644,
0x0645,
0x0646,
0x0648,
0x0649,
0x064A,
0x064B,
0x064C,
0x064D,
0x064E,
0x064F,
0x0650,
0x0651,
0x0652,
0x0647,
0x06A4,
0x067E,
0x0686,
0x0698,
0x06AF,
0x0679,
0x0688,
0x0691,
0x06BA,
0x06D2,
0x06D5,
0x20AA,
0x05BE,
0x05C3,
0x05D0,
0x05D1,
0x05D2,
0x05D3,
0x05D4,
0x05D5,
0x05D6,
0x05D7,
0x05D8,
0x05D9,
0x05DA,
0x05DB,
0x05DC,
0x05DD,
0x05DE,
0x05DF,
0x05E0,
0x05E1,
0x05E2,
0x05E3,
0x05E4,
0x05E5,
0x05E6,
0x05E7,
0x05E8,
0x05E9,
0x05EA,
0xFB2A,
0xFB2B,
0xFB4B,
0xFB1F,
0x05F0,
0x05F1,
0x05F2,
0xFB35,
0x05B4,
0x05B5,
0x05B6,
0x05BB,
0x05B8,
0x05B7,
0x05B0,
0x05B2,
0x05B1,
0x05B3,
0x05C2,
0x05C1,
0x05B9,
0x05BC,
0x05BD,
0x05BF,
0x05C0,
0x02BC,
0x2105,
0x2113,
0x2116,
0x202C,
0x202D,
0x202E,
0x200C,
0x066D,
0x02BD,
0x00E0,
0x2135,
0x03B1,
0x03AC,
0x0101,
0x0026,
0xF726,
0x2220,
0x2329,
0x232A,
0x0387,
0x0105,
0x2248,
0x00E5,
0x01FB,
0x2194,
0x21D4,
0x21D3,
0x21D0,
0x21D2,
0x21D1,
0x2193,
0xF8E7,
0x2190,
0x2192,
0x2191,
0x2195,
0x21A8,
0xF8E6,
0x005E,
0x007E,
0x002A,
0x2217,
0xF6E9,
0x0040,
0x00E3,
0x0062,
0x005C,
0x007C,
0x03B2,
0x2588,
0xF8F4,
0x007B,
0xF8F3,
0xF8F2,
0xF8F1,
0x007D,
0xF8FE,
0xF8FD,
0xF8FC,
0x005B,
0xF8F0,
0xF8EF,
0xF8EE,
0x005D,
0xF8FB,
0xF8FA,
0xF8F9,
0x02D8,
0x00A6,
0xF6EA,
0x2022,
0x0063,
0x0107,
0x02C7,
0x21B5,
0x010D,
0x00E7,
0x0109,
0x010B,
0x00B8,
0x00A2,
0xF6DF,
0xF7A2,
0xF6E0,
0x03C7,
0x25CB,
0x2297,
0x2295,
0x02C6,
0x2663,
0x003A,
0x20A1,
0x002C,
0xF6C3,
0xF6E1,
0xF6E2,
0x2245,
0x00A9,
0xF8E9,
0xF6D9,
0x00A4,
0xF6D1,
0xF6D2,
0xF6D4,
0xF6D5,
0x0064,
0x2020,
0x2021,
0xF6D3,
0xF6D6,
0x010F,
0x0111,
0x00B0,
0x03B4,
0x2666,
0x00A8,
0xF6D7,
0xF6D8,
0x0385,
0x00F7,
0x2593,
0x2584,
0x0024,
0xF6E3,
0xF724,
0xF6E4,
0x20AB,
0x02D9,
0x0323,
0x0131,
0xF6BE,
0x22C5,
0xF6EB,
0x0065,
0x00E9,
0x0115,
0x011B,
0x00EA,
0x00EB,
0x0117,
0x00E8,
0x0038,
0x2088,
0xF738,
0x2078,
0x2208,
0x2026,
0x0113,
0x2014,
0x2205,
0x2013,
0x014B,
0x0119,
0x03B5,
0x03AD,
0x003D,
0x2261,
0x212E,
0xF6EC,
0x03B7,
0x03AE,
0x00F0,
0x0021,
0x203C,
0x00A1,
0xF7A1,
0xF721,
0x2203,
0x0066,
0x2640,
0xFB00,
0xFB03,
0xFB04,
0xFB01,
0x2012,
0x25A0,
0x25AC,
0x0035,
0x215D,
0x2085,
0xF735,
0x2075,
0xFB02,
0x0192,
0x0034,
0x2084,
0xF734,
0x2074,
0x2044,
0x2215,
0x20A3,
0x0067,
0x03B3,
0x011F,
0x01E7,
0x011D,
0x0123,
0x0121,
0x00DF,
0x2207,
0x0060,
0x0300,
0x003E,
0x2265,
0x00AB,
0x00BB,
0x2039,
0x203A,
0x0068,
0x0127,
0x0125,
0x2665,
0x0309,
0x2302,
0x02DD,
0x002D,
0x00AD,
0xF6E5,
0xF6E6,
0x0069,
0x00ED,
0x012D,
0x00EE,
0x00EF,
0x00EC,
0x0133,
0x012B,
0x221E,
0x222B,
0x2321,
0xF8F5,
0x2320,
0x2229,
0x25D8,
0x25D9,
0x263B,
0x012F,
0x03B9,
0x03CA,
0x0390,
0x03AF,
0xF6ED,
0x0129,
0x006A,
0x0135,
0x006B,
0x03BA,
0x0137,
0x0138,
0x006C,
0x013A,
0x03BB,
0x013E,
0x013C,
0x0140,
0x003C,
0x2264,
0x258C,
0x20A4,
0xF6C0,
0x2227,
0x00AC,
0x2228,
0x017F,
0x25CA,
0x0142,
0xF6EE,
0x2591,
0x006D,
0x00AF,
0x02C9,
0x2642,
0x2212,
0x2032,
0xF6EF,
0x00B5,
0x03BC,
0x00D7,
0x266A,
0x266B,
0x006E,
0x0144,
0x0149,
0x0148,
0x0146,
0x0039,
0x2089,
0xF739,
0x2079,
0x2209,
0x2260,
0x2284,
0x207F,
0x00F1,
0x03BD,
0x0023,
0x006F,
0x00F3,
0x014F,
0x00F4,
0x00F6,
0x0153,
0x02DB,
0x00F2,
0x01A1,
0x0151,
0x014D,
0x03C9,
0x03D6,
0x03CE,
0x03BF,
0x03CC,
0x0031,
0x2024,
0x215B,
0xF6DC,
0x00BD,
0x2081,
0xF731,
0x00BC,
0x00B9,
0x2153,
0x25E6,
0x00AA,
0x00BA,
0x221F,
0x00F8,
0x01FF,
0xF6F0,
0x00F5,
0x0070,
0x00B6,
0x0028,
0xF8ED,
0xF8EC,
0x208D,
0x207D,
0xF8EB,
0x0029,
0xF8F8,
0xF8F7,
0x208E,
0x207E,
0xF8F6,
0x2202,
0x0025,
0x002E,
0x00B7,
0x2219,
0xF6E7,
0xF6E8,
0x22A5,
0x2030,
0x20A7,
0x03C6,
0x03D5,
0x03C0,
0x002B,
0x00B1,
0x211E,
0x220F,
0x2282,
0x2283,
0x221D,
0x03C8,
0x0071,
0x003F,
0x00BF,
0xF7BF,
0xF73F,
0x0022,
0x201E,
0x201C,
0x201D,
0x2018,
0x201B,
0x2019,
0x201A,
0x0027,
0x0072,
0x0155,
0x221A,
0xF8E5,
0x0159,
0x0157,
0x2286,
0x2287,
0x00AE,
0xF8E8,
0xF6DA,
0x2310,
0x03C1,
0x02DA,
0xF6F1,
0x2590,
0xF6DD,
0x0073,
0x015B,
0x0161,
0x015F,
0xF6C2,
0x015D,
0x0219,
0x2033,
0x00A7,
0x003B,
0x0037,
0x215E,
0x2087,
0xF737,
0x2077,
0x2592,
0x03C3,
0x03C2,
0x223C,
0x0036,
0x2086,
0xF736,
0x2076,
0x002F,
0x263A,
0x0020,
0x00A0,
0x2660,
0xF6F2,
0x00A3,
0x220B,
0x2211,
0x263C,
0x0074,
0x03C4,
0x0167,
0x0165,
0x0163,
0x021B,
0x2234,
0x03B8,
0x03D1,
0x00FE,
0x0033,
0x215C,
0x2083,
0xF733,
0x00BE,
0xF6DE,
0x00B3,
0x02DC,
0x0303,
0x0384,
0x2122,
0xF8EA,
0xF6DB,
0x25BC,
0x25C4,
0x25BA,
0x25B2,
0xF6F3,
0x0032,
0x2025,
0x2082,
0xF732,
0x00B2,
0x2154,
0x0075,
0x00FA,
0x016D,
0x00FB,
0x00FC,
0x00F9,
0x01B0,
0x0171,
0x016B,
0x005F,
0x2017,
0x222A,
0x2200,
0x0173,
0x2580,
0x03C5,
0x03CB,
0x03B0,
0x03CD,
0x016F,
0x0169,
0x0076,
0x0077,
0x1E83,
0x0175,
0x1E85,
0x2118,
0x1E81,
0x0078,
0x03BE,
0x0079,
0x00FD,
0x0177,
0x00FF,
0x00A5,
0x1EF3,
0x007A,
0x017A,
0x017E,
0x017C,
0x0030,
0x2080,
0xF730,
0x2070,
0x03B6
};
#endregion
#region GLYPH
private static string[] _glyph = {
"A",
"AE",
"AEacute",
"AEsmall",
"Aacute",
"Aacutesmall",
"Abreve",
"Acircumflex",
"Acircumflexsmall",
"Acute",
"Acutesmall",
"Adieresis",
"Adieresissmall",
"Agrave",
"Agravesmall",
"Alpha",
"Alphatonos",
"Amacron",
"Aogonek",
"Aring",
"Aringacute",
"Aringsmall",
"Asmall",
"Atilde",
"Atildesmall",
"B",
"Beta",
"Brevesmall",
"Bsmall",
"C",
"Cacute",
"Caron",
"Caronsmall",
"Ccaron",
"Ccedilla",
"Ccedillasmall",
"Ccircumflex",
"Cdotaccent",
"Cedillasmall",
"Chi",
"Circumflexsmall",
"Csmall",
"D",
"Dcaron",
"Dcroat",
"Delta",
"Delta",
"Dieresis",
"DieresisAcute",
"DieresisGrave",
"Dieresissmall",
"Dotaccentsmall",
"Dsmall",
"E",
"Eacute",
"Eacutesmall",
"Ebreve",
"Ecaron",
"Ecircumflex",
"Ecircumflexsmall",
"Edieresis",
"Edieresissmall",
"Edotaccent",
"Egrave",
"Egravesmall",
"Emacron",
"Eng",
"Eogonek",
"Epsilon",
"Epsilontonos",
"Esmall",
"Eta",
"Etatonos",
"Eth",
"Ethsmall",
"Euro",
"F",
"Fsmall",
"G",
"Gamma",
"Gbreve",
"Gcaron",
"Gcircumflex",
"Gcommaaccent",
"Gdotaccent",
"Grave",
"Gravesmall",
"Gsmall",
"H",
"H18533",
"H18543",
"H18551",
"H22073",
"Hbar",
"Hcircumflex",
"Hsmall",
"Hungarumlaut",
"Hungarumlautsmall",
"I",
"IJ",
"Iacute",
"Iacutesmall",
"Ibreve",
"Icircumflex",
"Icircumflexsmall",
"Idieresis",
"Idieresissmall",
"Idotaccent",
"Ifraktur",
"Igrave",
"Igravesmall",
"Imacron",
"Iogonek",
"Iota",
"Iotadieresis",
"Iotatonos",
"Ismall",
"Itilde",
"J",
"Jcircumflex",
"Jsmall",
"K",
"Kappa",
"Kcommaaccent",
"Ksmall",
"L",
"LL",
"Lacute",
"Lambda",
"Lcaron",
"Lcommaaccent",
"Ldot",
"Lslash",
"Lslashsmall",
"Lsmall",
"M",
"Macron",
"Macronsmall",
"Msmall",
"Mu",
"N",
"Nacute",
"Ncaron",
"Ncommaaccent",
"Nsmall",
"Ntilde",
"Ntildesmall",
"Nu",
"O",
"OE",
"OEsmall",
"Oacute",
"Oacutesmall",
"Obreve",
"Ocircumflex",
"Ocircumflexsmall",
"Odieresis",
"Odieresissmall",
"Ogoneksmall",
"Ograve",
"Ogravesmall",
"Ohorn",
"Ohungarumlaut",
"Omacron",
"Omega",
"Omega",
"Omegatonos",
"Omicron",
"Omicrontonos",
"Oslash",
"Oslashacute",
"Oslashsmall",
"Osmall",
"Otilde",
"Otildesmall",
"P",
"Phi",
"Pi",
"Psi",
"Psmall",
"Q",
"Qsmall",
"R",
"Racute",
"Rcaron",
"Rcommaaccent",
"Rfraktur",
"Rho",
"Ringsmall",
"Rsmall",
"S",
"SF010000",
"SF020000",
"SF030000",
"SF040000",
"SF050000",
"SF060000",
"SF070000",
"SF080000",
"SF090000",
"SF100000",
"SF110000",
"SF190000",
"SF200000",
"SF210000",
"SF220000",
"SF230000",
"SF240000",
"SF250000",
"SF260000",
"SF270000",
"SF280000",
"SF360000",
"SF370000",
"SF380000",
"SF390000",
"SF400000",
"SF410000",
"SF420000",
"SF430000",
"SF440000",
"SF450000",
"SF460000",
"SF470000",
"SF480000",
"SF490000",
"SF500000",
"SF510000",
"SF520000",
"SF530000",
"SF540000",
"Sacute",
"Scaron",
"Scaronsmall",
"Scedilla",
"Scedilla",
"Scircumflex",
"Scommaaccent",
"Sigma",
"Ssmall",
"T",
"Tau",
"Tbar",
"Tcaron",
"Tcommaaccent",
"Tcommaaccent",
"Theta",
"Thorn",
"Thornsmall",
"Tildesmall",
"Tsmall",
"U",
"Uacute",
"Uacutesmall",
"Ubreve",
"Ucircumflex",
"Ucircumflexsmall",
"Udieresis",
"Udieresissmall",
"Ugrave",
"Ugravesmall",
"Uhorn",
"Uhungarumlaut",
"Umacron",
"Uogonek",
"Upsilon",
"Upsilon1",
"Upsilondieresis",
"Upsilontonos",
"Uring",
"Usmall",
"Utilde",
"V",
"Vsmall",
"W",
"Wacute",
"Wcircumflex",
"Wdieresis",
"Wgrave",
"Wsmall",
"X",
"Xi",
"Xsmall",
"Y",
"Yacute",
"Yacutesmall",
"Ycircumflex",
"Ydieresis",
"Ydieresissmall",
"Ygrave",
"Ysmall",
"Z",
"Zacute",
"Zcaron",
"Zcaronsmall",
"Zdotaccent",
"Zeta",
"Zsmall",
"a",
"aacute",
"abreve",
"acircumflex",
"acute",
"acutecomb",
"adieresis",
"ae",
"aeacute",
"afii00208",
"afii10017",
"afii10018",
"afii10019",
"afii10020",
"afii10021",
"afii10022",
"afii10023",
"afii10024",
"afii10025",
"afii10026",
"afii10027",
"afii10028",
"afii10029",
"afii10030",
"afii10031",
"afii10032",
"afii10033",
"afii10034",
"afii10035",
"afii10036",
"afii10037",
"afii10038",
"afii10039",
"afii10040",
"afii10041",
"afii10042",
"afii10043",
"afii10044",
"afii10045",
"afii10046",
"afii10047",
"afii10048",
"afii10049",
"afii10050",
"afii10051",
"afii10052",
"afii10053",
"afii10054",
"afii10055",
"afii10056",
"afii10057",
"afii10058",
"afii10059",
"afii10060",
"afii10061",
"afii10062",
"afii10063",
"afii10064",
"afii10065",
"afii10066",
"afii10067",
"afii10068",
"afii10069",
"afii10070",
"afii10071",
"afii10072",
"afii10073",
"afii10074",
"afii10075",
"afii10076",
"afii10077",
"afii10078",
"afii10079",
"afii10080",
"afii10081",
"afii10082",
"afii10083",
"afii10084",
"afii10085",
"afii10086",
"afii10087",
"afii10088",
"afii10089",
"afii10090",
"afii10091",
"afii10092",
"afii10093",
"afii10094",
"afii10095",
"afii10096",
"afii10097",
"afii10098",
"afii10099",
"afii10100",
"afii10101",
"afii10102",
"afii10103",
"afii10104",
"afii10105",
"afii10106",
"afii10107",
"afii10108",
"afii10109",
"afii10110",
"afii10145",
"afii10146",
"afii10147",
"afii10148",
"afii10192",
"afii10193",
"afii10194",
"afii10195",
"afii10196",
"afii10831",
"afii10832",
"afii10846",
"afii299",
"afii300",
"afii301",
"afii57381",
"afii57388",
"afii57392",
"afii57393",
"afii57394",
"afii57395",
"afii57396",
"afii57397",
"afii57398",
"afii57399",
"afii57400",
"afii57401",
"afii57403",
"afii57407",
"afii57409",
"afii57410",
"afii57411",
"afii57412",
"afii57413",
"afii57414",
"afii57415",
"afii57416",
"afii57417",
"afii57418",
"afii57419",
"afii57420",
"afii57421",
"afii57422",
"afii57423",
"afii57424",
"afii57425",
"afii57426",
"afii57427",
"afii57428",
"afii57429",
"afii57430",
"afii57431",
"afii57432",
"afii57433",
"afii57434",
"afii57440",
"afii57441",
"afii57442",
"afii57443",
"afii57444",
"afii57445",
"afii57446",
"afii57448",
"afii57449",
"afii57450",
"afii57451",
"afii57452",
"afii57453",
"afii57454",
"afii57455",
"afii57456",
"afii57457",
"afii57458",
"afii57470",
"afii57505",
"afii57506",
"afii57507",
"afii57508",
"afii57509",
"afii57511",
"afii57512",
"afii57513",
"afii57514",
"afii57519",
"afii57534",
"afii57636",
"afii57645",
"afii57658",
"afii57664",
"afii57665",
"afii57666",
"afii57667",
"afii57668",
"afii57669",
"afii57670",
"afii57671",
"afii57672",
"afii57673",
"afii57674",
"afii57675",
"afii57676",
"afii57677",
"afii57678",
"afii57679",
"afii57680",
"afii57681",
"afii57682",
"afii57683",
"afii57684",
"afii57685",
"afii57686",
"afii57687",
"afii57688",
"afii57689",
"afii57690",
"afii57694",
"afii57695",
"afii57700",
"afii57705",
"afii57716",
"afii57717",
"afii57718",
"afii57723",
"afii57793",
"afii57794",
"afii57795",
"afii57796",
"afii57797",
"afii57798",
"afii57799",
"afii57800",
"afii57801",
"afii57802",
"afii57803",
"afii57804",
"afii57806",
"afii57807",
"afii57839",
"afii57841",
"afii57842",
"afii57929",
"afii61248",
"afii61289",
"afii61352",
"afii61573",
"afii61574",
"afii61575",
"afii61664",
"afii63167",
"afii64937",
"agrave",
"aleph",
"alpha",
"alphatonos",
"amacron",
"ampersand",
"ampersandsmall",
"angle",
"angleleft",
"angleright",
"anoteleia",
"aogonek",
"approxequal",
"aring",
"aringacute",
"arrowboth",
"arrowdblboth",
"arrowdbldown",
"arrowdblleft",
"arrowdblright",
"arrowdblup",
"arrowdown",
"arrowhorizex",
"arrowleft",
"arrowright",
"arrowup",
"arrowupdn",
"arrowupdnbse",
"arrowvertex",
"asciicircum",
"asciitilde",
"asterisk",
"asteriskmath",
"abaseior",
"at",
"atilde",
"b",
"backslash",
"bar",
"beta",
"block",
"braceex",
"braceleft",
"braceleftbt",
"braceleftmid",
"bracelefttp",
"braceright",
"bracerightbt",
"bracerightmid",
"bracerighttp",
"bracketleft",
"bracketleftbt",
"bracketleftex",
"bracketlefttp",
"bracketright",
"bracketrightbt",
"bracketrightex",
"bracketrighttp",
"breve",
"brokenbar",
"bbaseior",
"bullet",
"c",
"cacute",
"caron",
"carriagereturn",
"ccaron",
"ccedilla",
"ccircumflex",
"cdotaccent",
"cedilla",
"cent",
"centinferior",
"centoldstyle",
"centbaseior",
"chi",
"circle",
"circlemultiply",
"circleplus",
"circumflex",
"club",
"colon",
"colonmonetary",
"comma",
"commaaccent",
"commainferior",
"commabaseior",
"congruent",
"copyright",
"copyrightsans",
"copyrightserif",
"currency",
"cyrBreve",
"cyrFlex",
"cyrbreve",
"cyrflex",
"d",
"dagger",
"daggerdbl",
"dblGrave",
"dblgrave",
"dcaron",
"dcroat",
"degree",
"delta",
"diamond",
"dieresis",
"dieresisacute",
"dieresisgrave",
"dieresistonos",
"divide",
"dkshade",
"dnblock",
"dollar",
"dollarinferior",
"dollaroldstyle",
"dollarbaseior",
"dong",
"dotaccent",
"dotbelowcomb",
"dotlessi",
"dotlessj",
"dotmath",
"dbaseior",
"e",
"eacute",
"ebreve",
"ecaron",
"ecircumflex",
"edieresis",
"edotaccent",
"egrave",
"eight",
"eightinferior",
"eightoldstyle",
"eightbaseior",
"element",
"ellipsis",
"emacron",
"emdash",
"emptyset",
"endash",
"eng",
"eogonek",
"epsilon",
"epsilontonos",
"equal",
"equivalence",
"estimated",
"ebaseior",
"eta",
"etatonos",
"eth",
"exclam",
"exclamdbl",
"exclamdown",
"exclamdownsmall",
"exclamsmall",
"existential",
"f",
"female",
"ff",
"ffi",
"ffl",
"fi",
"figuredash",
"filledbox",
"filledrect",
"five",
"fiveeighths",
"fiveinferior",
"fiveoldstyle",
"fivebaseior",
"fl",
"florin",
"four",
"fourinferior",
"fouroldstyle",
"fourbaseior",
"fraction",
"fraction",
"franc",
"g",
"gamma",
"gbreve",
"gcaron",
"gcircumflex",
"gcommaaccent",
"gdotaccent",
"germandbls",
"gradient",
"grave",
"gravecomb",
"greater",
"greaterequal",
"guillemotleft",
"guillemotright",
"guilsinglleft",
"guilsinglright",
"h",
"hbar",
"hcircumflex",
"heart",
"hookabovecomb",
"house",
"hungarumlaut",
"hyphen",
"hyphen",
"hypheninferior",
"hyphenbaseior",
"i",
"iacute",
"ibreve",
"icircumflex",
"idieresis",
"igrave",
"ij",
"imacron",
"infinity",
"integral",
"integralbt",
"integralex",
"integraltp",
"intersection",
"invbullet",
"invcircle",
"invsmileface",
"iogonek",
"iota",
"iotadieresis",
"iotadieresistonos",
"iotatonos",
"ibaseior",
"itilde",
"j",
"jcircumflex",
"k",
"kappa",
"kcommaaccent",
"kgreenlandic",
"l",
"lacute",
"lambda",
"lcaron",
"lcommaaccent",
"ldot",
"less",
"lessequal",
"lfblock",
"lira",
"ll",
"logicaland",
"logicalnot",
"logicalor",
"longs",
"lozenge",
"lslash",
"lbaseior",
"ltshade",
"m",
"macron",
"macron",
"male",
"minus",
"minute",
"mbaseior",
"mu",
"mu",
"multiply",
"musicalnote",
"musicalnotedbl",
"n",
"nacute",
"napostrophe",
"ncaron",
"ncommaaccent",
"nine",
"nineinferior",
"nineoldstyle",
"ninebaseior",
"notelement",
"notequal",
"notsubset",
"nbaseior",
"ntilde",
"nu",
"numbersign",
"o",
"oacute",
"obreve",
"ocircumflex",
"odieresis",
"oe",
"ogonek",
"ograve",
"ohorn",
"ohungarumlaut",
"omacron",
"omega",
"omega1",
"omegatonos",
"omicron",
"omicrontonos",
"one",
"onedotenleader",
"oneeighth",
"onefitted",
"onehalf",
"oneinferior",
"oneoldstyle",
"onequarter",
"onebaseior",
"onethird",
"openbullet",
"ordfeminine",
"ordmasculine",
"orthogonal",
"oslash",
"oslashacute",
"obaseior",
"otilde",
"p",
"paragraph",
"parenleft",
"parenleftbt",
"parenleftex",
"parenleftinferior",
"parenleftbaseior",
"parenlefttp",
"parenright",
"parenrightbt",
"parenrightex",
"parenrightinferior",
"parenrightbaseior",
"parenrighttp",
"partialdiff",
"percent",
"period",
"periodcentered",
"periodcentered",
"periodinferior",
"periodbaseior",
"perpendicular",
"perthousand",
"peseta",
"phi",
"phi1",
"pi",
"plus",
"plusminus",
"prescription",
"product",
"propersubset",
"properbaseset",
"proportional",
"psi",
"q",
"question",
"questiondown",
"questiondownsmall",
"questionsmall",
"quotedbl",
"quotedblbase",
"quotedblleft",
"quotedblright",
"quoteleft",
"quotereversed",
"quoteright",
"quotesinglbase",
"quotesingle",
"r",
"racute",
"radical",
"radicalex",
"rcaron",
"rcommaaccent",
"reflexsubset",
"reflexbaseset",
"registered",
"registersans",
"registerserif",
"revlogicalnot",
"rho",
"ring",
"rbaseior",
"rtblock",
"rupiah",
"s",
"sacute",
"scaron",
"scedilla",
"scedilla",
"scircumflex",
"scommaaccent",
"second",
"section",
"semicolon",
"seven",
"seveneighths",
"seveninferior",
"sevenoldstyle",
"sevenbaseior",
"shade",
"sigma",
"sigma1",
"similar",
"six",
"sixinferior",
"sixoldstyle",
"sixbaseior",
"slash",
"smileface",
"space",
"space",
"spade",
"sbaseior",
"sterling",
"suchthat",
"summation",
"sun",
"t",
"tau",
"tbar",
"tcaron",
"tcommaaccent",
"tcommaaccent",
"therefore",
"theta",
"theta1",
"thorn",
"three",
"threeeighths",
"threeinferior",
"threeoldstyle",
"threequarters",
"threequartersemdash",
"threebaseior",
"tilde",
"tildecomb",
"tonos",
"trademark",
"trademarksans",
"trademarkserif",
"triagdn",
"triaglf",
"triagrt",
"triagup",
"tbaseior",
"two",
"twodotenleader",
"twoinferior",
"twooldstyle",
"twobaseior",
"twothirds",
"u",
"uacute",
"ubreve",
"ucircumflex",
"udieresis",
"ugrave",
"uhorn",
"uhungarumlaut",
"umacron",
"underscore",
"underscoredbl",
"union",
"universal",
"uogonek",
"upblock",
"upsilon",
"upsilondieresis",
"upsilondieresistonos",
"upsilontonos",
"uring",
"utilde",
"v",
"w",
"wacute",
"wcircumflex",
"wdieresis",
"weierstrass",
"wgrave",
"x",
"xi",
"y",
"yacute",
"ycircumflex",
"ydieresis",
"yen",
"ygrave",
"z",
"zacute",
"zcaron",
"zdotaccent",
"zero",
"zeroinferior",
"zerooldstyle",
"zerobaseior",
"zeta"
};
#endregion
#region CODE
private static int[] _pdfcode = {
101,//A
306,//AE
0,//AEacute
346,//AEsmall
301,//Aacute
341,//Aacutesmall
0,//Abreve
302,//Acircumflex
342,//Acircumflexsmall
264,//Acute
0,//Acutesmall
304,//Adieresis
344,//Adieresissmall
300,//Agrave
340,//Agravesmall
0,//Alpha
0,//Alphatonos
0,//Amacron
0,//Aogonek
305,//Aring
0,//Aringacute
345,//Aringsmall
141,//Asmall
303,//Atilde
343,//Atildesmall
102,//B
0,//Beta
0,//Brevesmall
142,//Bsmall
103,//C
0,//Cacute
0,//Caron
0,//Caronsmall
0,//Ccaron
307,//Ccedilla
347,//Ccedillasmall
0,//Ccircumflex
0,//Cdotaccent
0,//Cedillasmall
0,//Chi
0,//Circumflexsmall
143,//Csmall
104,//D
0,//Dcaron
0,//Dcroat
0,//Delta
0,//Delta
250,//Dieresis
0,//DieresisAcute
0,//DieresisGrave
0,//Dieresissmall
0,//Dotaccentsmall
144,//Dsmall
105,//E
311,//Eacute
351,//Eacutesmall
0,//Ebreve
0,//Ecaron
312,//Ecircumflex
352,//Ecircumflexsmall
313,//Edieresis
353,//Edieresissmall
0,//Edotaccent
310,//Egrave
350,//Egravesmall
0,//Emacron
0,//Eng
0,//Eogonek
0,//Epsilon
0,//Epsilontonos
145,//Esmall
0,//Eta
0,//Etatonos
320,//Eth
360,//Ethsmall
200,//Euro
106,//F
146,//Fsmall
107,//G
0,//Gamma
0,//Gbreve
0,//Gcaron
0,//Gcircumflex
0,//Gcommaaccent
0,//Gdotaccent
140,//Grave
0,//Gravesmall
147,//Gsmall
110,//H
0,//H18533
0,//H18543
0,//H18551
0,//H22073
0,//Hbar
0,//Hcircumflex
150,//Hsmall
0,//Hungarumlaut
0,//Hungarumlautsmall
111,//I
0,//IJ
315,//Iacute
355,//Iacutesmall
0,//Ibreve
316,//Icircumflex
356,//Icircumflexsmall
317,//Idieresis
357,//Idieresissmall
0,//Idotaccent
0,//Ifraktur
314,//Igrave
354,//Igravesmall
0,//Imacron
0,//Iogonek
0,//Iota
0,//Iotadieresis
0,//Iotatonos
151,//Ismall
0,//Itilde
112,//J
0,//Jcircumflex
152,//Jsmall
113,//K
0,//Kappa
0,//Kcommaaccent
153,//Ksmall
114,//L
0,//LL
0,//Lacute
0,//Lambda
0,//Lcaron
0,//Lcommaaccent
0,//Ldot
0,//Lslash
0,//Lslashsmall
154,//Lsmall
115,//M
257,//Macron
0,//Macronsmall
155,//Msmall
265,//Mu
116,//N
0,//Nacute
0,//Ncaron
0,//Ncommaaccent
156,//Nsmall
321,//Ntilde
361,//Ntildesmall
0,//Nu
117,//O
214,//OE
234,//OEsmall
323,//Oacute
363,//Oacutesmall
0,//Obreve
324,//Ocircumflex
364,//Ocircumflexsmall
326,//Odieresis
366,//Odieresissmall
0,//Ogoneksmall
322,//Ograve
362,//Ogravesmall
0,//Ohorn
0,//Ohungarumlaut
0,//Omacron
0,//Omega
0,//Omega
0,//Omegatonos
0,//Omicron
0,//Omicrontonos
330,//Oslash
0,//Oslashacute
370,//Oslashsmall
157,//Osmall
325,//Otilde
365,//Otildesmall
120,//P
0,//Phi
0,//Pi
0,//Psi
160,//Psmall
121,//Q
161,//Qsmall
122,//R
0,//Racute
0,//Rcaron
0,//Rcommaaccent
0,//Rfraktur
0,//Rho
0,//Ringsmall
162,//Rsmall
123,//S
0,//SF010000
0,//SF020000
0,//SF030000
0,//SF040000
0,//SF050000
0,//SF060000
0,//SF070000
0,//SF080000
0,//SF090000
0,//SF100000
0,//SF110000
0,//SF190000
0,//SF200000
0,//SF210000
0,//SF220000
0,//SF230000
0,//SF240000
0,//SF250000
0,//SF260000
0,//SF270000
0,//SF280000
0,//SF360000
0,//SF370000
0,//SF380000
0,//SF390000
0,//SF400000
0,//SF410000
0,//SF420000
0,//SF430000
0,//SF440000
0,//SF450000
0,//SF460000
0,//SF470000
0,//SF480000
0,//SF490000
0,//SF500000
0,//SF510000
0,//SF520000
0,//SF530000
0,//SF540000
0,//Sacute
212,//Scaron
232,//Scaronsmall
0,//Scedilla
0,//Scedilla
0,//Scircumflex
0,//Scommaaccent
0,//Sigma
163,//Ssmall
124,//T
0,//Tau
0,//Tbar
0,//Tcaron
0,//Tcommaaccent
0,//Tcommaaccent
0,//Theta
336,//Thorn
376,//Thornsmall
0,//Tildesmall
164,//Tsmall
125,//U
332,//Uacute
372,//Uacutesmall
0,//Ubreve
333,//Ucircumflex
373,//Ucircumflexsmall
334,//Udieresis
374,//Udieresissmall
331,//Ugrave
371,//Ugravesmall
0,//Uhorn
0,//Uhungarumlaut
0,//Umacron
0,//Uogonek
0,//Upsilon
0,//Upsilon1
0,//Upsilondieresis
0,//Upsilontonos
0,//Uring
165,//Usmall
0,//Utilde
126,//V
166,//Vsmall
127,//W
0,//Wacute
0,//Wcircumflex
0,//Wdieresis
0,//Wgrave
167,//Wsmall
130,//X
0,//Xi
170,//Xsmall
131,//Y
335,//Yacute
375,//Yacutesmall
0,//Ycircumflex
237,//Ydieresis
377,//Ydieresissmall
0,//Ygrave
171,//Ysmall
132,//Z
0,//Zacute
216,//Zcaron
236,//Zcaronsmall
0,//Zdotaccent
0,//Zeta
172,//Zsmall
101,//a
301,//aacute
0,//abreve
302,//acircumflex
264,//acute
0,//acutecomb
304,//adieresis
306,//ae
0,//aeacute
0,//afii00208
0,//afii10017
0,//afii10018
0,//afii10019
0,//afii10020
0,//afii10021
0,//afii10022
0,//afii10023
0,//afii10024
0,//afii10025
0,//afii10026
0,//afii10027
0,//afii10028
0,//afii10029
0,//afii10030
0,//afii10031
0,//afii10032
0,//afii10033
0,//afii10034
0,//afii10035
0,//afii10036
0,//afii10037
0,//afii10038
0,//afii10039
0,//afii10040
0,//afii10041
0,//afii10042
0,//afii10043
0,//afii10044
0,//afii10045
0,//afii10046
0,//afii10047
0,//afii10048
0,//afii10049
0,//afii10050
0,//afii10051
0,//afii10052
0,//afii10053
0,//afii10054
0,//afii10055
0,//afii10056
0,//afii10057
0,//afii10058
0,//afii10059
0,//afii10060
0,//afii10061
0,//afii10062
0,//afii10063
0,//afii10064
0,//afii10065
0,//afii10066
0,//afii10067
0,//afii10068
0,//afii10069
0,//afii10070
0,//afii10071
0,//afii10072
0,//afii10073
0,//afii10074
0,//afii10075
0,//afii10076
0,//afii10077
0,//afii10078
0,//afii10079
0,//afii10080
0,//afii10081
0,//afii10082
0,//afii10083
0,//afii10084
0,//afii10085
0,//afii10086
0,//afii10087
0,//afii10088
0,//afii10089
0,//afii10090
0,//afii10091
0,//afii10092
0,//afii10093
0,//afii10094
0,//afii10095
0,//afii10096
0,//afii10097
0,//afii10098
0,//afii10099
0,//afii10100
0,//afii10101
0,//afii10102
0,//afii10103
0,//afii10104
0,//afii10105
0,//afii10106
0,//afii10107
0,//afii10108
0,//afii10109
0,//afii10110
0,//afii10145
0,//afii10146
0,//afii10147
0,//afii10148
0,//afii10192
0,//afii10193
0,//afii10194
0,//afii10195
0,//afii10196
0,//afii10831
0,//afii10832
0,//afii10846
0,//afii299
0,//afii300
0,//afii301
0,//afii57381
0,//afii57388
0,//afii57392
0,//afii57393
0,//afii57394
0,//afii57395
0,//afii57396
0,//afii57397
0,//afii57398
0,//afii57399
0,//afii57400
0,//afii57401
0,//afii57403
0,//afii57407
0,//afii57409
0,//afii57410
0,//afii57411
0,//afii57412
0,//afii57413
0,//afii57414
0,//afii57415
0,//afii57416
0,//afii57417
0,//afii57418
0,//afii57419
0,//afii57420
0,//afii57421
0,//afii57422
0,//afii57423
0,//afii57424
0,//afii57425
0,//afii57426
0,//afii57427
0,//afii57428
0,//afii57429
0,//afii57430
0,//afii57431
0,//afii57432
0,//afii57433
0,//afii57434
0,//afii57440
0,//afii57441
0,//afii57442
0,//afii57443
0,//afii57444
0,//afii57445
0,//afii57446
0,//afii57448
0,//afii57449
0,//afii57450
0,//afii57451
0,//afii57452
0,//afii57453
0,//afii57454
0,//afii57455
0,//afii57456
0,//afii57457
0,//afii57458
0,//afii57470
0,//afii57505
0,//afii57506
0,//afii57507
0,//afii57508
0,//afii57509
0,//afii57511
0,//afii57512
0,//afii57513
0,//afii57514
0,//afii57519
0,//afii57534
0,//afii57636
0,//afii57645
0,//afii57658
0,//afii57664
0,//afii57665
0,//afii57666
0,//afii57667
0,//afii57668
0,//afii57669
0,//afii57670
0,//afii57671
0,//afii57672
0,//afii57673
0,//afii57674
0,//afii57675
0,//afii57676
0,//afii57677
0,//afii57678
0,//afii57679
0,//afii57680
0,//afii57681
0,//afii57682
0,//afii57683
0,//afii57684
0,//afii57685
0,//afii57686
0,//afii57687
0,//afii57688
0,//afii57689
0,//afii57690
0,//afii57694
0,//afii57695
0,//afii57700
0,//afii57705
0,//afii57716
0,//afii57717
0,//afii57718
0,//afii57723
0,//afii57793
0,//afii57794
0,//afii57795
0,//afii57796
0,//afii57797
0,//afii57798
0,//afii57799
0,//afii57800
0,//afii57801
0,//afii57802
0,//afii57803
0,//afii57804
0,//afii57806
0,//afii57807
0,//afii57839
0,//afii57841
0,//afii57842
0,//afii57929
0,//afii61248
0,//afii61289
0,//afii61352
0,//afii61573
0,//afii61574
0,//afii61575
0,//afii61664
0,//afii63167
0,//afii64937
300,//agrave
0,//aleph
0,//alpha
0,//alphatonos
0,//amacron
46,//ampersand
0,//ampersandsmall
0,//angle
0,//angleleft
0,//angleright
0,//anoteleia
0,//aogonek
0,//approxequal
305,//aring
0,//aringacute
0,//arrowboth
0,//arrowdblboth
0,//arrowdbldown
0,//arrowdblleft
0,//arrowdblright
0,//arrowdblup
0,//arrowdown
0,//arrowhorizex
0,//arrowleft
0,//arrowright
0,//arrowup
0,//arrowupdn
0,//arrowupdnbse
0,//arrowvertex
136,//asciicircum
176,//asciitilde
52,//asterisk
0,//asteriskmath
0,//abaseior
100,//at
303,//atilde
102,//b
134,//backslash
174,//bar
0,//beta
0,//block
0,//braceex
173,//braceleft
0,//braceleftbt
0,//braceleftmid
0,//bracelefttp
175,//braceright
0,//bracerightbt
0,//bracerightmid
0,//bracerighttp
133,//bracketleft
0,//bracketleftbt
0,//bracketleftex
0,//bracketlefttp
135,//bracketright
0,//bracketrightbt
0,//bracketrightex
0,//bracketrighttp
0,//breve
246,//brokenbar
0,//bbaseior
225,//bullet
103,//c
0,//cacute
0,//caron
0,//carriagereturn
0,//ccaron
307,//ccedilla
0,//ccircumflex
0,//cdotaccent
270,//cedilla
242,//cent
0,//centinferior
0,//centoldstyle
0,//centbaseior
0,//chi
0,//circle
0,//circlemultiply
0,//circleplus
210,//circumflex
0,//club
72,//colon
0,//colonmonetary
54,//comma
0,//commaaccent
0,//commainferior
0,//commabaseior
0,//congruent
251,//copyright
0,//copyrightsans
0,//copyrightserif
244,//currency
0,//cyrBreve
0,//cyrFlex
0,//cyrbreve
0,//cyrflex
104,//d
206,//dagger
207,//daggerdbl
0,//dblGrave
0,//dblgrave
0,//dcaron
0,//dcroat
260,//degree
0,//delta
0,//diamond
250,//dieresis
0,//dieresisacute
0,//dieresisgrave
0,//dieresistonos
367,//divide
0,//dkshade
0,//dnblock
44,//dollar
0,//dollarinferior
0,//dollaroldstyle
0,//dollarbaseior
0,//dong
0,//dotaccent
0,//dotbelowcomb
0,//dotlessi
0,//dotlessj
0,//dotmath
0,//dbaseior
105,//e
311,//eacute
0,//ebreve
0,//ecaron
312,//ecircumflex
313,//edieresis
0,//edotaccent
310,//egrave
70,//eight
0,//eightinferior
0,//eightoldstyle
0,//eightbaseior
0,//element
205,//ellipsis
0,//emacron
227,//emdash
0,//emptyset
226,//endash
0,//eng
0,//eogonek
0,//epsilon
0,//epsilontonos
75,//equal
0,//equivalence
0,//estimated
0,//ebaseior
0,//eta
0,//etatonos
320,//eth
41,//exclam
0,//exclamdbl
241,//exclamdown
0,//exclamdownsmall
0,//exclamsmall
0,//existential
106,//f
0,//female
0,//ff
0,//ffi
0,//ffl
0,//fi
0,//figuredash
0,//filledbox
0,//filledrect
65,//five
0,//fiveeighths
0,//fiveinferior
0,//fiveoldstyle
0,//fivebaseior
0,//fl
203,//florin
64,//four
0,//fourinferior
0,//fouroldstyle
0,//fourbaseior
0,//fraction
0,//fraction
0,//franc
107,//g
0,//gamma
0,//gbreve
0,//gcaron
0,//gcircumflex
0,//gcommaaccent
0,//gdotaccent
337,//germandbls
0,//gradient
140,//grave
0,//gravecomb
76,//greater
0,//greaterequal
253,//guillemotleft
273,//guillemotright
213,//guilsinglleft
233,//guilsinglright
110,//h
0,//hbar
0,//hcircumflex
0,//heart
0,//hookabovecomb
0,//house
0,//hungarumlaut
55,//hyphen
55,//hyphen
0,//hypheninferior
0,//hyphenbaseior
111,//i
315,//iacute
0,//ibreve
316,//icircumflex
317,//idieresis
314,//igrave
0,//ij
0,//imacron
0,//infinity
0,//integral
0,//integralbt
0,//integralex
0,//integraltp
0,//intersection
0,//invbullet
0,//invcircle
0,//invsmileface
0,//iogonek
0,//iota
0,//iotadieresis
0,//iotadieresistonos
0,//iotatonos
0,//ibaseior
0,//itilde
112,//j
0,//jcircumflex
113,//k
0,//kappa
0,//kcommaaccent
0,//kgreenlandic
114,//l
0,//lacute
0,//lambda
0,//lcaron
0,//lcommaaccent
0,//ldot
74,//less
0,//lessequal
0,//lfblock
0,//lira
0,//ll
0,//logicaland
254,//logicalnot
0,//logicalor
0,//longs
0,//lozenge
0,//lslash
0,//lbaseior
0,//ltshade
115,//m
257,//macron
257,//macron
0,//male
0,//minus
0,//minute
0,//mbaseior
265,//mu
265,//mu
327,//multiply
0,//musicalnote
0,//musicalnotedbl
116,//n
0,//nacute
0,//napostrophe
0,//ncaron
0,//ncommaaccent
71,//nine
0,//nineinferior
0,//nineoldstyle
0,//ninebaseior
0,//notelement
0,//notequal
0,//notsubset
0,//nbaseior
321,//ntilde
0,//nu
43,//numbersign
117,//o
323,//oacute
0,//obreve
324,//ocircumflex
326,//odieresis
214,//oe
0,//ogonek
322,//ograve
0,//ohorn
0,//ohungarumlaut
0,//omacron
0,//omega
0,//omega1
0,//omegatonos
0,//omicron
0,//omicrontonos
61,//one
0,//onedotenleader
0,//oneeighth
0,//onefitted
275,//onehalf
0,//oneinferior
0,//oneoldstyle
274,//onequarter
0,//onebaseior
0,//onethird
0,//openbullet
252,//ordfeminine
272,//ordmasculine
0,//orthogonal
330,//oslash
0,//oslashacute
0,//obaseior
325,//otilde
120,//p
266,//paragraph
50,//parenleft
0,//parenleftbt
0,//parenleftex
0,//parenleftinferior
0,//parenleftbaseior
0,//parenlefttp
51,//parenright
0,//parenrightbt
0,//parenrightex
0,//parenrightinferior
0,//parenrightbaseior
0,//parenrighttp
0,//partialdiff
45,//percent
56,//period
267,//periodcentered
267,//periodcentered
0,//periodinferior
0,//periodbaseior
0,//perpendicular
211,//perthousand
0,//peseta
0,//phi
0,//phi1
0,//pi
53,//plus
261,//plusminus
0,//prescription
0,//product
0,//propersubset
0,//properbaseset
0,//proportional
0,//psi
121,//q
77,//question
277,//questiondown
0,//questiondownsmall
0,//questionsmall
42,//quotedbl
204,//quotedblbase
223,//quotedblleft
224,//quotedblright
221,//quoteleft
0,//quotereversed
222,//quoteright
202,//quotesinglbase
47,//quotesingle
122,//r
0,//racute
0,//radical
0,//radicalex
0,//rcaron
0,//rcommaaccent
0,//reflexsubset
0,//reflexbaseset
256,//registered
0,//registersans
0,//registerserif
0,//revlogicalnot
0,//rho
0,//ring
0,//rbaseior
0,//rtblock
0,//rupiah
123,//s
0,//sacute
212,//scaron
0,//scedilla
0,//scedilla
0,//scircumflex
0,//scommaaccent
0,//second
247,//section
73,//semicolon
67,//seven
0,//seveneighths
0,//seveninferior
0,//sevenoldstyle
0,//sevenbaseior
0,//shade
0,//sigma
0,//sigma1
0,//similar
66,//six
0,//sixinferior
0,//sixoldstyle
0,//sixbaseior
57,//slash
0,//smileface
40,//space
40,//space
0,//spade
0,//sbaseior
243,//sterling
0,//suchthat
0,//summation
0,//sun
124,//t
0,//tau
0,//tbar
0,//tcaron
0,//tcommaaccent
0,//tcommaaccent
0,//therefore
0,//theta
0,//theta1
336,//thorn
63,//three
0,//threeeighths
0,//threeinferior
0,//threeoldstyle
276,//threequarters
0,//threequartersemdash
0,//threebaseior
230,//tilde
0,//tildecomb
0,//tonos
231,//trademark
0,//trademarksans
0,//trademarkserif
0,//triagdn
0,//triaglf
0,//triagrt
0,//triagup
0,//tbaseior
62,//two
0,//twodotenleader
0,//twoinferior
0,//twooldstyle
0,//twobaseior
0,//twothirds
125,//u
332,//uacute
0,//ubreve
333,//ucircumflex
334,//udieresis
331,//ugrave
0,//uhorn
0,//uhungarumlaut
0,//umacron
137,//underscore
0,//underscoredbl
0,//union
0,//universal
0,//uogonek
0,//upblock
0,//upsilon
0,//upsilondieresis
0,//upsilondieresistonos
0,//upsilontonos
0,//uring
0,//utilde
126,//v
127,//w
0,//wacute
0,//wcircumflex
0,//wdieresis
0,//weierstrass
0,//wgrave
130,//x
0,//xi
131,//y
335,//yacute
0,//ycircumflex
237,//ydieresis
245,//yen
0,//ygrave
132,//z
0,//zacute
216,//zcaron
0,//zdotaccent
60,//zero
0,//zeroinferior
0,//zerooldstyle
0,//zerobaseior
0//zeta
};
#endregion
private static Hashtable _UniToGlyph;
private static Hashtable _UniToPDFCode;
private static Hashtable _GlyphToUni;
private static Hashtable _GlyphToPDFCode;
/// <summary>
/// Static class's constructor
/// </summary>
static GlyphConverter()
{
_UniToGlyph = new Hashtable();
_UniToPDFCode = new Hashtable();
_GlyphToUni = new Hashtable();
_GlyphToPDFCode = new Hashtable();
for(int i = 0; i < _unicode.Length; i++) {
if (!_UniToGlyph.ContainsKey(_unicode[i]))
_UniToGlyph.Add(_unicode[i], _glyph[i]);
if (!_UniToPDFCode.ContainsKey(_unicode[i]))
_UniToPDFCode.Add(_unicode[i], _pdfcode[i]);
if (!_GlyphToUni.ContainsKey(_glyph[i]))
_GlyphToUni.Add(_glyph[i], _unicode[i]);
if (!_GlyphToPDFCode.ContainsKey(_glyph[i]))
_GlyphToPDFCode.Add(_glyph[i], _pdfcode[i]);
}
}
/// <summary>
/// Method that returns the Unicode Index of a Glyph
/// </summary>
/// <param name="glyphName">Glyph Name</param>
/// <returns>Unicode Index</returns>
public static int UnicodeFromGlyph(string glyphName)
{
if (_GlyphToUni.ContainsKey(glyphName)) {
return Convert.ToInt32(_GlyphToUni[glyphName]);
} else {
return 0;
}
}
/// <summary>
/// Method that returns a Glyph From a Unicode Index
/// </summary>
/// <param name="unicodeIndex">Unicode Index</param>
/// <returns>Glyph</returns>
public static string GlyphFromUnicode(int unicodeIndex)
{
if (_UniToGlyph.ContainsKey(unicodeIndex)) {
return Convert.ToString(_UniToGlyph[unicodeIndex]);
} else {
return "";
}
}
/// <summary>
/// Method that returns a PDF Code From a Glyph
/// </summary>
/// <param name="glyphName">Glyph Name</param>
/// <returns>PDF Code</returns>
public static string pdfCodeFromGlyph(string glyphName)
{
int resultCODE = 0;
if (_GlyphToPDFCode.ContainsKey(glyphName)) {
resultCODE = Convert.ToInt32(_GlyphToPDFCode[glyphName]);
}
if (resultCODE != 0) {
return @"\" + resultCODE.ToString();
} else {
return "";
}
}
/// <summary>
/// Method that returns a PDF Code From a Unicode Index
/// </summary>
/// <param name="unicodeIndex">Unicode Index</param>
/// <returns>PDF Code</returns>
public static string pdfCodeFromUnicode(int unicodeIndex)
{
int resultCODE = 0;
if (_UniToPDFCode.ContainsKey(unicodeIndex)) {
resultCODE = Convert.ToInt32(_UniToPDFCode[unicodeIndex]);
}
if (resultCODE != 0) {
return @"\" + resultCODE.ToString();
} else {
return "";
}
}
}
}
|