0001: /*
0002: * Licensed to the Apache Software Foundation (ASF) under one or more
0003: * contributor license agreements. See the NOTICE file distributed with
0004: * this work for additional information regarding copyright ownership.
0005: * The ASF licenses this file to You under the Apache License, Version 2.0
0006: * (the "License"); you may not use this file except in compliance with
0007: * the License. You may obtain a copy of the License at
0008: *
0009: * http://www.apache.org/licenses/LICENSE-2.0
0010: *
0011: * Unless required by applicable law or agreed to in writing, software
0012: * distributed under the License is distributed on an "AS IS" BASIS,
0013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014: * See the License for the specific language governing permissions and
0015: * limitations under the License.
0016: */
0017:
0018: /* $Id: Glyphs.java 426584 2006-07-28 16:01:47Z jeremias $ */
0019:
0020: package org.apache.xmlgraphics.fonts;
0021:
0022: /**
0023: * This class provides a number of constants for glyph management.
0024: */
0025: public class Glyphs {
0026:
0027: /**
0028: * Glyph name for the "notdef" glyph
0029: */
0030: public static final String NOTDEF = ".notdef";
0031:
0032: /**
0033: * Glyph names for Mac encoding
0034: */
0035: public static final String MAC_GLYPH_NAMES[] = {
0036: /* 0x00 */
0037: NOTDEF, ".null", "CR", "space", "exclam", "quotedbl", "numbersign",
0038: "dollar", "percent", "ampersand", "quotesingle",
0039: "parenleft", "parenright", "asterisk", "plus", "comma", /* 0x10 */
0040: "hyphen", "period", "slash", "zero", "one", "two", "three",
0041: "four", "five", "six", "seven", "eight", "nine", "colon",
0042: "semicolon", "less", /* 0x20 */
0043: "equal", "greater", "question", "at", "A", "B", "C", "D",
0044: "E", "F", "G", "H", "I", "J", "K", "L", /* 0x30 */
0045: "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
0046: "Y", "Z", "bracketleft", "backslash", /* 0x40 */
0047: "bracketright", "asciicircum", "underscore", "grave", "a",
0048: "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
0049: /* 0x50 */
0050: "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
0051: "y", "z", "braceleft", "bar", /* 0x60 */
0052: "braceright", "asciitilde", "Adieresis", "Aring",
0053: "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
0054: "aacute", "agrave", "acircumflex", "adieresis", "atilde",
0055: "aring", "ccedilla", /* 0x70 */
0056: "eacute", "egrave", "ecircumflex", "edieresis", "iacute",
0057: "igrave", "icircumflex", "idieresis", "ntilde", "oacute",
0058: "ograve", "ocircumflex", "odieresis", "otilde", "uacute",
0059: "ugrave",
0060: /* 0x80 */
0061: "ucircumflex", "udieresis", "dagger", "degree", "cent",
0062: "sterling", "section", "bullet", "paragraph", "germandbls",
0063: "registered", "copyright", "trademark", "acute",
0064: "dieresis", "notequal", /* 0x90 */
0065: "AE", "Oslash", "infinity", "plusminus", "lessequal",
0066: "greaterequal", "yen", "mu", "partialdiff", "Sigma", "Pi",
0067: "pi", "integral", "ordfeminine", "ordmasculine", "Omega", /* 0xa0 */
0068: "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
0069: "radical", "florin", "approxequal", "Delta",
0070: "guillemotleft", "guillemotright", "ellipsis", "nbspace",
0071: "Agrave", "Atilde", "Otilde", /* 0xb0 */
0072: "OE", "oe", "endash", "emdash", "quotedblleft",
0073: "quotedblright", "quoteleft", "quoteright", "divide",
0074: "lozenge", "ydieresis", "Ydieresis", "fraction",
0075: "currency", "guilsinglleft", "guilsinglright", /* 0xc0 */
0076: "fi", "fl", "daggerdbl", "periodcentered",
0077: "quotesinglbase", "quotedblbase", "perthousand",
0078: "Acircumflex", "Ecircumflex", "Aacute", "Edieresis",
0079: "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", /* 0xd0 */
0080: "Oacute", "Ocircumflex", "applelogo", "Ograve", "Uacute",
0081: "Ucircumflex", "Ugrave", "dotlessi", "circumflex", "tilde",
0082: "macron", "breve", "dotaccent", "ring", "cedilla",
0083: "hungarumlaut", /* 0xe0 */
0084: "ogonek", "caron", "Lslash", "lslash", "Scaron", "scaron",
0085: "Zcaron", "zcaron", "brokenbar", "Eth", "eth", "Yacute",
0086: "yacute", "Thorn", "thorn", "minus", /* 0xf0 */
0087: "multiply", "onesuperior", "twosuperior", "threesuperior",
0088: "onehalf", "onequarter", "threequarters", "franc",
0089: "Gbreve", "gbreve", "Idot", "Scedilla", "scedilla",
0090: "Cacute", "cacute", "Ccaron", /* 0x100 */
0091: "ccaron", "dmacron" };
0092:
0093: /**
0094: * Glyph names for tex8r encoding
0095: */
0096: public static final String[] TEX8R_GLYPH_NAMES = {
0097: // 0x00
0098: NOTDEF,
0099: "dotaccent",
0100: "fi",
0101: "fl",
0102: "fraction",
0103: "hungarumlaut",
0104: "Lslash",
0105: "lslash",
0106: "ogonek",
0107: "ring",
0108: ".notdef",
0109: "breve",
0110: "minus",
0111: ".notdef",
0112: "Zcaron",
0113: "zcaron", // 0x10
0114: "caron",
0115: "dotlessi",
0116: "dotlessj",
0117: "ff",
0118: "ffi",
0119: "ffl",
0120: ".notdef",
0121: ".notdef",
0122: ".notdef",
0123: ".notdef",
0124: ".notdef",
0125: ".notdef",
0126: ".notdef",
0127: ".notdef",
0128: "grave",
0129: "quotesingle", // 0x20
0130: "space",
0131: "exclam",
0132: "quotedbl",
0133: "numbersign",
0134: "dollar",
0135: "percent",
0136: "ampersand",
0137: "quoteright",
0138: "parenleft",
0139: "parenright",
0140: "asterisk",
0141: "plus",
0142: "comma",
0143: "hyphen",
0144: "period",
0145: "slash",
0146: // 0x30
0147: "zero",
0148: "one",
0149: "two",
0150: "three",
0151: "four",
0152: "five",
0153: "six",
0154: "seven",
0155: "eight",
0156: "nine",
0157: "colon",
0158: "semicolon",
0159: "less",
0160: "equal",
0161: "greater",
0162: "question", // 0x40
0163: "at",
0164: "A",
0165: "B",
0166: "C",
0167: "D",
0168: "E",
0169: "F",
0170: "G",
0171: "H",
0172: "I",
0173: "J",
0174: "K",
0175: "L",
0176: "M",
0177: "N",
0178: "O", // 0x50
0179: "P",
0180: "Q",
0181: "R",
0182: "S",
0183: "T",
0184: "U",
0185: "V",
0186: "W",
0187: "X",
0188: "Y",
0189: "Z",
0190: "bracketleft",
0191: "backslash",
0192: "bracketright",
0193: "asciicircum",
0194: "underscore", // 0x60
0195: "quoteleft",
0196: "a",
0197: "b",
0198: "c",
0199: "d",
0200: "e",
0201: "f",
0202: "g",
0203: "h",
0204: "i",
0205: "j",
0206: "k",
0207: "l",
0208: "m",
0209: "n",
0210: "o", // 0x70
0211: "p",
0212: "q",
0213: "r",
0214: "s",
0215: "t",
0216: "u",
0217: "v",
0218: "w",
0219: "x",
0220: "y",
0221: "z",
0222: "braceleft",
0223: "bar",
0224: "braceright",
0225: "asciitilde",
0226: ".notdef", // 0x80
0227: "Euro",
0228: ".notdef",
0229: "quotesinglbase",
0230: "florin",
0231: "quotedblbase",
0232: "ellipsis",
0233: "dagger",
0234: "daggerdbl",
0235: "circumflex",
0236: "perthousand",
0237: "Scaron",
0238: "guilsinglleft",
0239: "OE",
0240: ".notdef",
0241: ".notdef",
0242: ".notdef", // 0x90
0243: ".notdef",
0244: ".notdef",
0245: ".notdef",
0246: "quotedblleft",
0247: "quotedblright",
0248: "bullet",
0249: "endash",
0250: "emdash",
0251: "tilde",
0252: "trademark",
0253: "scaron",
0254: "guilsinglright",
0255: "oe",
0256: ".notdef",
0257: ".notdef",
0258: "Ydieresis", // 0xA0
0259: ".notdef",
0260: "exclamdown",
0261: "cent",
0262: "sterling",
0263: "currency",
0264: "yen",
0265: "brokenbar",
0266: "section",
0267: "dieresis",
0268: "copyright",
0269: "ordfeminine",
0270: "guillemotleft",
0271: "logicalnot",
0272: "hyphen",
0273: "registered",
0274: "macron", // 0xB0
0275: "degree",
0276: "plusminus",
0277: "twosuperior",
0278: "threesuperior",
0279: "acute",
0280: "mu",
0281: "paragraph",
0282: "periodcentered",
0283: "cedilla",
0284: "onesuperior",
0285: "ordmasculine",
0286: "guillemotright",
0287: "onequarter",
0288: "onehalf",
0289: "threequarters",
0290: "questiondown", // 0xC0
0291: "Agrave", "Aacute", "Acircumflex", "Atilde",
0292: "Adieresis",
0293: "Aring",
0294: "AE",
0295: "Ccedilla",
0296: "Egrave",
0297: "Eacute",
0298: "Ecircumflex",
0299: "Edieresis",
0300: "Igrave",
0301: "Iacute",
0302: "Icircumflex",
0303: "Idieresis", // 0xD0
0304: "Eth", "Ntilde", "Ograve", "Oacute", "Ocircumflex",
0305: "Otilde", "Odieresis", "multiply", "Oslash",
0306: "Ugrave",
0307: "Uacute",
0308: "Ucircumflex",
0309: "Udieresis",
0310: "Yacute",
0311: "Thorn",
0312: "germandbls",
0313: // 0xE0
0314: "agrave", "aacute", "acircumflex", "atilde", "adieresis",
0315: "aring", "ae", "ccedilla", "egrave", "eacute",
0316: "ecircumflex", "edieresis",
0317: "igrave",
0318: "iacute",
0319: "icircumflex",
0320: "idieresis", // 0xF0
0321: "eth", "ntilde", "ograve", "oacute", "ocircumflex",
0322: "otilde", "odieresis", "divide", "oslash", "ugrave",
0323: "uacute", "ucircumflex", "udieresis", "yacute", "thorn",
0324: "ydieresis" };
0325:
0326: /**
0327: * The characters in WinAnsiEncoding
0328: */
0329: public static final char[] WINANSI_ENCODING = {
0330: // not used until char 32
0331: 0,
0332: 0,
0333: 0,
0334: 0,
0335: 0,
0336: 0,
0337: 0,
0338: 0,
0339: 0,
0340: 0,
0341: 0,
0342: 0,
0343: 0,
0344: 0,
0345: 0,
0346: 0,
0347: 0,
0348: 0,
0349: 0,
0350: 0,
0351: 0,
0352: 0,
0353: 0,
0354: 0,
0355: 0,
0356: 0,
0357: 0,
0358: 0,
0359: 0,
0360: 0,
0361: 0,
0362: 0, // 0x20
0363: ' ',
0364: '\u0021',
0365: '\"',
0366: '\u0023',
0367: '$',
0368: '%',
0369: '&',
0370: '\'',
0371: '(',
0372: ')',
0373: '*',
0374: '+',
0375: ',',
0376: '\u002d',
0377: '\u002e',
0378: '/', // 0x30
0379: '0',
0380: '1',
0381: '2',
0382: '3',
0383: '4',
0384: '5',
0385: '6',
0386: '7',
0387: '8',
0388: '9',
0389: ':',
0390: ';',
0391: '<',
0392: '=',
0393: '>',
0394: '?',
0395: '@', // 0x40
0396: 'A',
0397: 'B',
0398: 'C',
0399: 'D',
0400: 'E',
0401: 'F',
0402: 'G',
0403: 'H',
0404: 'I',
0405: 'J',
0406: 'K',
0407: 'L',
0408: 'M',
0409: 'N',
0410: 'O', // 0x50
0411: 'P',
0412: 'Q',
0413: 'R',
0414: 'S',
0415: 'T',
0416: 'U',
0417: 'V',
0418: 'W',
0419: 'X',
0420: 'Y',
0421: 'Z',
0422: '\u005b',
0423: '\\',
0424: '\u005d',
0425: '^',
0426: '_', // 0x60
0427: '\u2018',
0428: 'a',
0429: 'b',
0430: 'c',
0431: 'd',
0432: 'e',
0433: 'f',
0434: 'g',
0435: 'h',
0436: 'i',
0437: 'j',
0438: 'k',
0439: 'l',
0440: 'm',
0441: 'n',
0442: 'o', // 0x70
0443: 'p',
0444: 'q',
0445: 'r',
0446: 's',
0447: 't',
0448: 'u',
0449: 'v',
0450: 'w',
0451: 'x',
0452: 'y',
0453: 'z',
0454: '\u007b',
0455: '\u007c',
0456: '\u007d',
0457: '\u007e',
0458: '\u2022', // 0x80
0459: '\u20ac',
0460: '\u2022',
0461: '\u201a',
0462: '\u0192',
0463: '\u201e',
0464: '\u2026',
0465: '\u2020',
0466: '\u2021',
0467: '\u02c6',
0468: '\u2030',
0469: '\u0160',
0470: '\u2039',
0471: '\u0152',
0472: '\u2022',
0473: '\u017d',
0474: '\u2022', // 0x90
0475: '\u2022',
0476: '\u2018', // quoteleft
0477: '\u2019', // quoteright
0478: '\u201c', // quotedblleft
0479: '\u201d', // quotedblright
0480: '\u2022', // bullet
0481: '\u2013', // endash
0482: '\u2014', // emdash
0483: '~',
0484: '\u2122', // trademark
0485: '\u0161',
0486: '\u203a',
0487: '\u0153',
0488: '\u2022',
0489: '\u017e',
0490: '\u0178', // 0xA0
0491: ' ',
0492: '\u00a1',
0493: '\u00a2',
0494: '\u00a3',
0495: '\u00a4',
0496: '\u00a5',
0497: '\u00a6',
0498: '\u00a7',
0499: '\u00a8',
0500: '\u00a9',
0501: '\u00aa',
0502: '\u00ab',
0503: '\u00ac',
0504: '\u00ad',
0505: '\u00ae',
0506: '\u00af', // 0xb0
0507: '\u00b0',
0508: '\u00b1',
0509: '\u00b2',
0510: '\u00b3',
0511: '\u00b4',
0512: '\u00b5', // This is hand-coded, the rest is assumption
0513: '\u00b6', // and *might* not be correct...
0514: '\u00b7',
0515: '\u00b8',
0516: '\u00b9',
0517: '\u00ba',
0518: '\u00bb',
0519: '\u00bc',
0520: '\u00bd',
0521: '\u00be',
0522: '\u00bf', // 0xc0
0523: '\u00c0',
0524: '\u00c1',
0525: '\u00c2',
0526: '\u00c3',
0527: '\u00c4',
0528: '\u00c5', // Aring
0529: '\u00c6', // AE
0530: '\u00c7', '\u00c8', '\u00c9',
0531: '\u00ca',
0532: '\u00cb',
0533: '\u00cc',
0534: '\u00cd',
0535: '\u00ce',
0536: '\u00cf', // 0xd0
0537: '\u00d0', '\u00d1', '\u00d2', '\u00d3',
0538: '\u00d4',
0539: '\u00d5',
0540: '\u00d6',
0541: '\u00d7',
0542: '\u00d8', // Oslash
0543: '\u00d9', '\u00da', '\u00db',
0544: '\u00dc',
0545: '\u00dd',
0546: '\u00de',
0547: '\u00df', // 0xe0
0548: '\u00e0',
0549: '\u00e1',
0550: '\u00e2',
0551: '\u00e3',
0552: '\u00e4',
0553: '\u00e5', // aring
0554: '\u00e6', // ae
0555: '\u00e7', '\u00e8', '\u00e9', '\u00ea', '\u00eb', '\u00ec',
0556: '\u00ed',
0557: '\u00ee',
0558: '\u00ef', // 0xf0
0559: '\u00f0', '\u00f1', '\u00f2', '\u00f3', '\u00f4', '\u00f5',
0560: '\u00f6', '\u00f7', '\u00f8', '\u00f9', '\u00fa', '\u00fb',
0561: '\u00fc', '\u00fd', '\u00fe', '\u00ff' };
0562:
0563: /**
0564: * List of unicode glyphs
0565: */
0566: public static final String[] UNICODE_GLYPHS = { "\u0041", "A",
0567: "\u00C6", "AE", "\u01FC", "AEacute", "\uF7E6", "AEsmall",
0568: "\u00C1", "Aacute", "\uF7E1", "Aacutesmall", "\u0102",
0569: "Abreve", "\u00C2", "Acircumflex", "\uF7E2",
0570: "Acircumflexsmall", "\uF6C9", "Acute", "\uF7B4",
0571: "Acutesmall", "\u00C4", "Adieresis", "\uF7E4",
0572: "Adieresissmall", "\u00C0", "Agrave", "\uF7E0",
0573: "Agravesmall", "\u0391", "Alpha", "\u0386", "Alphatonos",
0574: "\u0100", "Amacron", "\u0104", "Aogonek", "\u00C5",
0575: "Aring", "\u01FA", "Aringacute", "\uF7E5", "Aringsmall",
0576: "\uF761", "Asmall", "\u00C3", "Atilde", "\uF7E3",
0577: "Atildesmall", "\u0042", "B", "\u0392", "Beta", "\uF6F4",
0578: "Brevesmall", "\uF762", "Bsmall", "\u0043", "C", "\u0106",
0579: "Cacute", "\uF6CA", "Caron", "\uF6F5", "Caronsmall",
0580: "\u010C", "Ccaron", "\u00C7", "Ccedilla", "\uF7E7",
0581: "Ccedillasmall", "\u0108", "Ccircumflex", "\u010A",
0582: "Cdotaccent", "\uF7B8", "Cedillasmall", "\u03A7", "Chi",
0583: "\uF6F6", "Circumflexsmall", "\uF763", "Csmall", "\u0044",
0584: "D", "\u010E", "Dcaron", "\u0110", "Dcroat", "\u2206",
0585: "Delta", "\u0394", "Delta", "\uF6CB", "Dieresis", "\uF6CC",
0586: "DieresisAcute", "\uF6CD", "DieresisGrave", "\uF7A8",
0587: "Dieresissmall", "\uF6F7", "Dotaccentsmall", "\uF764",
0588: "Dsmall", "\u0045", "E", "\u00C9", "Eacute", "\uF7E9",
0589: "Eacutesmall", "\u0114", "Ebreve", "\u011A", "Ecaron",
0590: "\u00CA", "Ecircumflex", "\uF7EA", "Ecircumflexsmall",
0591: "\u00CB", "Edieresis", "\uF7EB", "Edieresissmall",
0592: "\u0116", "Edotaccent", "\u00C8", "Egrave", "\uF7E8",
0593: "Egravesmall", "\u0112", "Emacron", "\u014A", "Eng",
0594: "\u0118", "Eogonek", "\u0395", "Epsilon", "\u0388",
0595: "Epsilontonos", "\uF765", "Esmall", "\u0397", "Eta",
0596: "\u0389", "Etatonos", "\u00D0", "Eth", "\uF7F0",
0597: "Ethsmall", "\u20AC", "Euro", "\u0046", "F", "\uF766",
0598: "Fsmall", "\u0047", "G", "\u0393", "Gamma", "\u011E",
0599: "Gbreve", "\u01E6", "Gcaron", "\u011C", "Gcircumflex",
0600: "\u0122", "Gcommaaccent", "\u0120", "Gdotaccent", "\uF6CE",
0601: "Grave", "\uF760", "Gravesmall", "\uF767", "Gsmall",
0602: "\u0048", "H", "\u25CF", "H18533", "\u25AA", "H18543",
0603: "\u25AB", "H18551", "\u25A1", "H22073", "\u0126", "Hbar",
0604: "\u0124", "Hcircumflex", "\uF768", "Hsmall", "\uF6CF",
0605: "Hungarumlaut", "\uF6F8", "Hungarumlautsmall", "\u0049",
0606: "I", "\u0132", "IJ", "\u00CD", "Iacute", "\uF7ED",
0607: "Iacutesmall", "\u012C", "Ibreve", "\u00CE", "Icircumflex",
0608: "\uF7EE", "Icircumflexsmall", "\u00CF", "Idieresis",
0609: "\uF7EF", "Idieresissmall", "\u0130", "Idotaccent",
0610: "\u2111", "Ifraktur", "\u00CC", "Igrave", "\uF7EC",
0611: "Igravesmall", "\u012A", "Imacron", "\u012E", "Iogonek",
0612: "\u0399", "Iota", "\u03AA", "Iotadieresis", "\u038A",
0613: "Iotatonos", "\uF769", "Ismall", "\u0128", "Itilde",
0614: "\u004A", "J", "\u0134", "Jcircumflex", "\uF76A", "Jsmall",
0615: "\u004B", "K", "\u039A", "Kappa", "\u0136", "Kcommaaccent",
0616: "\uF76B", "Ksmall", "\u004C", "L", "\uF6BF", "LL",
0617: "\u0139", "Lacute", "\u039B", "Lambda", "\u013D", "Lcaron",
0618: "\u013B", "Lcommaaccent", "\u013F", "Ldot", "\u0141",
0619: "Lslash", "\uF6F9", "Lslashsmall", "\uF76C", "Lsmall",
0620: "\u004D", "M", "\uF6D0", "Macron", "\uF7AF", "Macronsmall",
0621: "\uF76D", "Msmall", "\u039C", "Mu", "\u004E", "N",
0622: "\u0143", "Nacute", "\u0147", "Ncaron", "\u0145",
0623: "Ncommaaccent", "\uF76E", "Nsmall", "\u00D1", "Ntilde",
0624: "\uF7F1", "Ntildesmall", "\u039D", "Nu", "\u004F", "O",
0625: "\u0152", "OE", "\uF6FA", "OEsmall", "\u00D3", "Oacute",
0626: "\uF7F3", "Oacutesmall", "\u014E", "Obreve", "\u00D4",
0627: "Ocircumflex", "\uF7F4", "Ocircumflexsmall", "\u00D6",
0628: "Odieresis", "\uF7F6", "Odieresissmall", "\uF6FB",
0629: "Ogoneksmall", "\u00D2", "Ograve", "\uF7F2", "Ogravesmall",
0630: "\u01A0", "Ohorn", "\u0150", "Ohungarumlaut", "\u014C",
0631: "Omacron", "\u2126", "Omega", "\u03A9", "Omega", "\u038F",
0632: "Omegatonos", "\u039F", "Omicron", "\u038C",
0633: "Omicrontonos", "\u00D8", "Oslash", "\u01FE",
0634: "Oslashacute", "\uF7F8", "Oslashsmall", "\uF76F", "Osmall",
0635: "\u00D5", "Otilde", "\uF7F5", "Otildesmall", "\u0050", "P",
0636: "\u03A6", "Phi", "\u03A0", "Pi", "\u03A8", "Psi", "\uF770",
0637: "Psmall", "\u0051", "Q", "\uF771", "Qsmall", "\u0052", "R",
0638: "\u0154", "Racute", "\u0158", "Rcaron", "\u0156",
0639: "Rcommaaccent", "\u211C", "Rfraktur", "\u03A1", "Rho",
0640: "\uF6FC", "Ringsmall", "\uF772", "Rsmall", "\u0053", "S",
0641: "\u250C", "SF010000", "\u2514", "SF020000", "\u2510",
0642: "SF030000", "\u2518", "SF040000", "\u253C", "SF050000",
0643: "\u252C", "SF060000", "\u2534", "SF070000", "\u251C",
0644: "SF080000", "\u2524", "SF090000", "\u2500", "SF100000",
0645: "\u2502", "SF110000", "\u2561", "SF190000", "\u2562",
0646: "SF200000", "\u2556", "SF210000", "\u2555", "SF220000",
0647: "\u2563", "SF230000", "\u2551", "SF240000", "\u2557",
0648: "SF250000", "\u255D", "SF260000", "\u255C", "SF270000",
0649: "\u255B", "SF280000", "\u255E", "SF360000", "\u255F",
0650: "SF370000", "\u255A", "SF380000", "\u2554", "SF390000",
0651: "\u2569", "SF400000", "\u2566", "SF410000", "\u2560",
0652: "SF420000", "\u2550", "SF430000", "\u256C", "SF440000",
0653: "\u2567", "SF450000", "\u2568", "SF460000", "\u2564",
0654: "SF470000", "\u2565", "SF480000", "\u2559", "SF490000",
0655: "\u2558", "SF500000", "\u2552", "SF510000", "\u2553",
0656: "SF520000", "\u256B", "SF530000", "\u256A", "SF540000",
0657: "\u015A", "Sacute", "\u0160", "Scaron", "\uF6FD",
0658: "Scaronsmall", "\u015E", "Scedilla", "\uF6C1", "Scedilla",
0659: "\u015C", "Scircumflex", "\u0218", "Scommaaccent",
0660: "\u03A3", "Sigma", "\uF773", "Ssmall", "\u0054", "T",
0661: "\u03A4", "Tau", "\u0166", "Tbar", "\u0164", "Tcaron",
0662: "\u0162", "Tcommaaccent", "\u021A", "Tcommaaccent",
0663: "\u0398", "Theta", "\u00DE", "Thorn", "\uF7FE",
0664: "Thornsmall", "\uF6FE", "Tildesmall", "\uF774", "Tsmall",
0665: "\u0055", "U", "\u00DA", "Uacute", "\uF7FA", "Uacutesmall",
0666: "\u016C", "Ubreve", "\u00DB", "Ucircumflex", "\uF7FB",
0667: "Ucircumflexsmall", "\u00DC", "Udieresis", "\uF7FC",
0668: "Udieresissmall", "\u00D9", "Ugrave", "\uF7F9",
0669: "Ugravesmall", "\u01AF", "Uhorn", "\u0170",
0670: "Uhungarumlaut", "\u016A", "Umacron", "\u0172", "Uogonek",
0671: "\u03A5", "Upsilon", "\u03D2", "Upsilon1", "\u03AB",
0672: "Upsilondieresis", "\u038E", "Upsilontonos", "\u016E",
0673: "Uring", "\uF775", "Usmall", "\u0168", "Utilde", "\u0056",
0674: "V", "\uF776", "Vsmall", "\u0057", "W", "\u1E82", "Wacute",
0675: "\u0174", "Wcircumflex", "\u1E84", "Wdieresis", "\u1E80",
0676: "Wgrave", "\uF777", "Wsmall", "\u0058", "X", "\u039E",
0677: "Xi", "\uF778", "Xsmall", "\u0059", "Y", "\u00DD",
0678: "Yacute", "\uF7FD", "Yacutesmall", "\u0176", "Ycircumflex",
0679: "\u0178", "Ydieresis", "\uF7FF", "Ydieresissmall",
0680: "\u1EF2", "Ygrave", "\uF779", "Ysmall", "\u005A", "Z",
0681: "\u0179", "Zacute", "\u017D", "Zcaron", "\uF6FF",
0682: "Zcaronsmall", "\u017B", "Zdotaccent", "\u0396", "Zeta",
0683: "\uF77A", "Zsmall", "\u0061", "a", "\u00E1", "aacute",
0684: "\u0103", "abreve", "\u00E2", "acircumflex", "\u00B4",
0685: "acute", "\u0301", "acutecomb", "\u00E4", "adieresis",
0686: "\u00E6", "ae", "\u01FD", "aeacute", "\u2015", "afii00208",
0687: "\u0410", "afii10017", "\u0411", "afii10018", "\u0412",
0688: "afii10019", "\u0413", "afii10020", "\u0414", "afii10021",
0689: "\u0415", "afii10022", "\u0401", "afii10023", "\u0416",
0690: "afii10024", "\u0417", "afii10025", "\u0418", "afii10026",
0691: "\u0419", "afii10027", "\u041A", "afii10028", "\u041B",
0692: "afii10029", "\u041C", "afii10030", "\u041D", "afii10031",
0693: "\u041E", "afii10032", "\u041F", "afii10033", "\u0420",
0694: "afii10034", "\u0421", "afii10035", "\u0422", "afii10036",
0695: "\u0423", "afii10037", "\u0424", "afii10038", "\u0425",
0696: "afii10039", "\u0426", "afii10040", "\u0427", "afii10041",
0697: "\u0428", "afii10042", "\u0429", "afii10043", "\u042A",
0698: "afii10044", "\u042B", "afii10045", "\u042C", "afii10046",
0699: "\u042D", "afii10047", "\u042E", "afii10048", "\u042F",
0700: "afii10049", "\u0490", "afii10050", "\u0402", "afii10051",
0701: "\u0403", "afii10052", "\u0404", "afii10053", "\u0405",
0702: "afii10054", "\u0406", "afii10055", "\u0407", "afii10056",
0703: "\u0408", "afii10057", "\u0409", "afii10058", "\u040A",
0704: "afii10059", "\u040B", "afii10060", "\u040C", "afii10061",
0705: "\u040E", "afii10062", "\uF6C4", "afii10063", "\uF6C5",
0706: "afii10064", "\u0430", "afii10065", "\u0431", "afii10066",
0707: "\u0432", "afii10067", "\u0433", "afii10068", "\u0434",
0708: "afii10069", "\u0435", "afii10070", "\u0451", "afii10071",
0709: "\u0436", "afii10072", "\u0437", "afii10073", "\u0438",
0710: "afii10074", "\u0439", "afii10075", "\u043A", "afii10076",
0711: "\u043B", "afii10077", "\u043C", "afii10078", "\u043D",
0712: "afii10079", "\u043E", "afii10080", "\u043F", "afii10081",
0713: "\u0440", "afii10082", "\u0441", "afii10083", "\u0442",
0714: "afii10084", "\u0443", "afii10085", "\u0444", "afii10086",
0715: "\u0445", "afii10087", "\u0446", "afii10088", "\u0447",
0716: "afii10089", "\u0448", "afii10090", "\u0449", "afii10091",
0717: "\u044A", "afii10092", "\u044B", "afii10093", "\u044C",
0718: "afii10094", "\u044D", "afii10095", "\u044E", "afii10096",
0719: "\u044F", "afii10097", "\u0491", "afii10098", "\u0452",
0720: "afii10099", "\u0453", "afii10100", "\u0454", "afii10101",
0721: "\u0455", "afii10102", "\u0456", "afii10103", "\u0457",
0722: "afii10104", "\u0458", "afii10105", "\u0459", "afii10106",
0723: "\u045A", "afii10107", "\u045B", "afii10108", "\u045C",
0724: "afii10109", "\u045E", "afii10110", "\u040F", "afii10145",
0725: "\u0462", "afii10146", "\u0472", "afii10147", "\u0474",
0726: "afii10148", "\uF6C6", "afii10192", "\u045F", "afii10193",
0727: "\u0463", "afii10194", "\u0473", "afii10195", "\u0475",
0728: "afii10196", "\uF6C7", "afii10831", "\uF6C8", "afii10832",
0729: "\u04D9", "afii10846", "\u200E", "afii299", "\u200F",
0730: "afii300", "\u200D", "afii301", "\u066A", "afii57381",
0731: "\u060C", "afii57388", "\u0660", "afii57392", "\u0661",
0732: "afii57393", "\u0662", "afii57394", "\u0663", "afii57395",
0733: "\u0664", "afii57396", "\u0665", "afii57397", "\u0666",
0734: "afii57398", "\u0667", "afii57399", "\u0668", "afii57400",
0735: "\u0669", "afii57401", "\u061B", "afii57403", "\u061F",
0736: "afii57407", "\u0621", "afii57409", "\u0622", "afii57410",
0737: "\u0623", "afii57411", "\u0624", "afii57412", "\u0625",
0738: "afii57413", "\u0626", "afii57414", "\u0627", "afii57415",
0739: "\u0628", "afii57416", "\u0629", "afii57417", "\u062A",
0740: "afii57418", "\u062B", "afii57419", "\u062C", "afii57420",
0741: "\u062D", "afii57421", "\u062E", "afii57422", "\u062F",
0742: "afii57423", "\u0630", "afii57424", "\u0631", "afii57425",
0743: "\u0632", "afii57426", "\u0633", "afii57427", "\u0634",
0744: "afii57428", "\u0635", "afii57429", "\u0636", "afii57430",
0745: "\u0637", "afii57431", "\u0638", "afii57432", "\u0639",
0746: "afii57433", "\u063A", "afii57434", "\u0640", "afii57440",
0747: "\u0641", "afii57441", "\u0642", "afii57442", "\u0643",
0748: "afii57443", "\u0644", "afii57444", "\u0645", "afii57445",
0749: "\u0646", "afii57446", "\u0648", "afii57448", "\u0649",
0750: "afii57449", "\u064A", "afii57450", "\u064B", "afii57451",
0751: "\u064C", "afii57452", "\u064D", "afii57453", "\u064E",
0752: "afii57454", "\u064F",
0753: "afii57455",
0754: "\u0650",
0755: "afii57456",
0756: "\u0651",
0757: "afii57457",
0758: "\u0652",
0759: "afii57458",
0760: "\u0647",
0761: "afii57470",
0762: "\u06A4",
0763: "afii57505",
0764: "\u067E",
0765: "afii57506",
0766: "\u0686",
0767: "afii57507",
0768: "\u0698",
0769: "afii57508",
0770: "\u06AF",
0771: "afii57509",
0772: "\u0679",
0773: "afii57511",
0774: "\u0688",
0775: "afii57512",
0776: "\u0691",
0777: "afii57513",
0778: "\u06BA",
0779: "afii57514",
0780: "\u06D2",
0781: "afii57519",
0782: "\u06D5",
0783: "afii57534",
0784: "\u20AA",
0785: "afii57636",
0786: "\u05BE",
0787: "afii57645",
0788: "\u05C3",
0789: "afii57658",
0790: "\u05D0",
0791: "afii57664",
0792: "\u05D1",
0793: "afii57665",
0794: "\u05D2",
0795: "afii57666",
0796: "\u05D3",
0797: "afii57667",
0798: "\u05D4",
0799: "afii57668",
0800: "\u05D5",
0801: "afii57669",
0802: "\u05D6",
0803: "afii57670",
0804: "\u05D7",
0805: "afii57671",
0806: "\u05D8",
0807: "afii57672",
0808: "\u05D9",
0809: "afii57673",
0810: "\u05DA",
0811: "afii57674",
0812: "\u05DB",
0813: "afii57675",
0814: "\u05DC",
0815: "afii57676",
0816: "\u05DD",
0817: "afii57677",
0818: "\u05DE",
0819: "afii57678",
0820: "\u05DF",
0821: "afii57679",
0822: "\u05E0",
0823: "afii57680",
0824: "\u05E1",
0825: "afii57681",
0826: "\u05E2",
0827: "afii57682",
0828: "\u05E3",
0829: "afii57683",
0830: "\u05E4",
0831: "afii57684",
0832: "\u05E5",
0833: "afii57685",
0834: "\u05E6",
0835: "afii57686",
0836: "\u05E7",
0837: "afii57687",
0838: "\u05E8",
0839: "afii57688",
0840: "\u05E9",
0841: "afii57689",
0842: "\u05EA",
0843: "afii57690",
0844: "\uFB2A",
0845: "afii57694",
0846: "\uFB2B",
0847: "afii57695",
0848: "\uFB4B",
0849: "afii57700",
0850: "\uFB1F",
0851: "afii57705",
0852: "\u05F0",
0853: "afii57716",
0854: "\u05F1",
0855: "afii57717",
0856: "\u05F2",
0857: "afii57718",
0858: "\uFB35",
0859: "afii57723",
0860: "\u05B4",
0861: "afii57793",
0862: "\u05B5",
0863: "afii57794",
0864: "\u05B6",
0865: "afii57795",
0866: "\u05BB",
0867: "afii57796",
0868: "\u05B8",
0869: "afii57797",
0870: "\u05B7",
0871: "afii57798",
0872: "\u05B0",
0873: "afii57799",
0874: "\u05B2",
0875: "afii57800",
0876: "\u05B1",
0877: "afii57801",
0878: "\u05B3",
0879: "afii57802",
0880: "\u05C2",
0881: "afii57803",
0882: "\u05C1",
0883: "afii57804",
0884: "\u05B9",
0885: "afii57806",
0886: "\u05BC",
0887: "afii57807",
0888: "\u05BD",
0889: "afii57839",
0890: "\u05BF",
0891: "afii57841",
0892: "\u05C0",
0893: "afii57842",
0894: "\u02BC",
0895: "afii57929",
0896: "\u2105",
0897: "afii61248",
0898: "\u2113",
0899: "afii61289",
0900: "\u2116",
0901: "afii61352",
0902: "\u202C",
0903: "afii61573",
0904: "\u202D",
0905: "afii61574",
0906: "\u202E",
0907: "afii61575",
0908: "\u200C",
0909: "afii61664",
0910: "\u066D",
0911: "afii63167",
0912: "\u02BD",
0913: "afii64937",
0914: "\u00E0",
0915: "agrave",
0916: "\u2135",
0917: "aleph",
0918: "\u03B1",
0919: "alpha",
0920: "\u03AC",
0921: "alphatonos",
0922: "\u0101",
0923: "amacron",
0924: "\u0026",
0925: "ampersand",
0926: "\uF726",
0927: "ampersandsmall",
0928: "\u2220",
0929: "angle",
0930: "\u2329",
0931: "angleleft",
0932: "\u232A",
0933: "angleright",
0934: "\u0387",
0935: "anoteleia",
0936: "\u0105",
0937: "aogonek",
0938: "\u2248",
0939: "approxequal",
0940: "\u00E5",
0941: "aring",
0942: "\u01FB",
0943: "aringacute",
0944: "\u2194",
0945: "arrowboth",
0946: "\u21D4",
0947: "arrowdblboth",
0948: "\u21D3",
0949: "arrowdbldown",
0950: "\u21D0",
0951: "arrowdblleft",
0952: "\u21D2",
0953: "arrowdblright",
0954: "\u21D1",
0955: "arrowdblup",
0956: "\u2193",
0957: "arrowdown",
0958: "\uF8E7",
0959: "arrowhorizex",
0960: "\u2190",
0961: "arrowleft",
0962: "\u2192",
0963: "arrowright",
0964: "\u2191",
0965: "arrowup",
0966: "\u2195",
0967: "arrowupdn",
0968: "\u21A8",
0969: "arrowupdnbse",
0970: "\uF8E6",
0971: "arrowvertex",
0972: "\u005E",
0973: "asciicircum",
0974: "\u007E",
0975: "asciitilde",
0976: "\u002A",
0977: "asterisk",
0978: "\u2217",
0979: "asteriskmath",
0980: "\uF6E9",
0981: "asuperior",
0982: "\u0040",
0983: "at",
0984: "\u00E3",
0985: "atilde",
0986: "\u0062",
0987: "b",
0988: //"\u005C", "backslash",
0989: "\\", "backslash", "\u007C", "bar", "\u03B2", "beta",
0990: "\u2588", "block", "\uF8F4", "braceex", "\u007B",
0991: "braceleft", "\uF8F3", "braceleftbt", "\uF8F2",
0992: "braceleftmid", "\uF8F1", "bracelefttp", "\u007D",
0993: "braceright", "\uF8FE", "bracerightbt", "\uF8FD",
0994: "bracerightmid", "\uF8FC", "bracerighttp", "\u005B",
0995: "bracketleft", "\uF8F0", "bracketleftbt", "\uF8EF",
0996: "bracketleftex", "\uF8EE", "bracketlefttp", "\u005D",
0997: "bracketright", "\uF8FB", "bracketrightbt", "\uF8FA",
0998: "bracketrightex", "\uF8F9", "bracketrighttp", "\u02D8",
0999: "breve", "\u00A6", "brokenbar", "\uF6EA", "bsuperior",
1000: "\u2022", "bullet", "\u0063", "c", "\u0107", "cacute",
1001: "\u02C7", "caron", "\u21B5", "carriagereturn", "\u010D",
1002: "ccaron", "\u00E7", "ccedilla", "\u0109", "ccircumflex",
1003: "\u010B", "cdotaccent", "\u00B8", "cedilla", "\u00A2",
1004: "cent", "\uF6DF", "centinferior", "\uF7A2", "centoldstyle",
1005: "\uF6E0", "centsuperior", "\u03C7", "chi", "\u25CB",
1006: "circle", "\u2297", "circlemultiply", "\u2295",
1007: "circleplus", "\u02C6", "circumflex", "\u2663", "club",
1008: "\u003A", "colon", "\u20A1", "colonmonetary", "\u002C",
1009: "comma", "\uF6C3", "commaaccent", "\uF6E1",
1010: "commainferior", "\uF6E2", "commasuperior", "\u2245",
1011: "congruent", "\u00A9", "copyright", "\uF8E9",
1012: "copyrightsans", "\uF6D9", "copyrightserif", "\u00A4",
1013: "currency", "\uF6D1", "cyrBreve", "\uF6D2", "cyrFlex",
1014: "\uF6D4", "cyrbreve", "\uF6D5", "cyrflex", "\u0064", "d",
1015: "\u2020", "dagger", "\u2021", "daggerdbl", "\uF6D3",
1016: "dblGrave", "\uF6D6", "dblgrave", "\u010F", "dcaron",
1017: "\u0111", "dcroat", "\u00B0", "degree", "\u03B4", "delta",
1018: "\u2666", "diamond", "\u00A8", "dieresis", "\uF6D7",
1019: "dieresisacute", "\uF6D8", "dieresisgrave", "\u0385",
1020: "dieresistonos", "\u00F7", "divide", "\u2593", "dkshade",
1021: "\u2584", "dnblock", "\u0024", "dollar", "\uF6E3",
1022: "dollarinferior", "\uF724", "dollaroldstyle", "\uF6E4",
1023: "dollarsuperior", "\u20AB", "dong", "\u02D9", "dotaccent",
1024: "\u0323", "dotbelowcomb", "\u0131", "dotlessi", "\uF6BE",
1025: "dotlessj", "\u22C5", "dotmath", "\uF6EB", "dsuperior",
1026: "\u0065", "e", "\u00E9", "eacute", "\u0115", "ebreve",
1027: "\u011B", "ecaron", "\u00EA", "ecircumflex", "\u00EB",
1028: "edieresis", "\u0117", "edotaccent", "\u00E8", "egrave",
1029: "\u0038", "eight", "\u2088", "eightinferior", "\uF738",
1030: "eightoldstyle", "\u2078", "eightsuperior", "\u2208",
1031: "element", "\u2026", "ellipsis", "\u0113", "emacron",
1032: "\u2014", "emdash", "\u2205", "emptyset", "\u2013",
1033: "endash", "\u014B", "eng", "\u0119", "eogonek", "\u03B5",
1034: "epsilon", "\u03AD", "epsilontonos", "\u003D", "equal",
1035: "\u2261", "equivalence", "\u212E", "estimated", "\uF6EC",
1036: "esuperior", "\u03B7", "eta", "\u03AE", "etatonos",
1037: "\u00F0", "eth", "\u0021", "exclam", "\u203C", "exclamdbl",
1038: "\u00A1", "exclamdown", "\uF7A1", "exclamdownsmall",
1039: "\uF721", "exclamsmall", "\u2203", "existential", "\u0066",
1040: "f", "\u2640", "female", "\uFB00", "ff", "\uFB03", "ffi",
1041: "\uFB04", "ffl", "\uFB01", "fi", "\u2012", "figuredash",
1042: "\u25A0", "filledbox", "\u25AC", "filledrect", "\u0035",
1043: "five", "\u215D", "fiveeighths", "\u2085", "fiveinferior",
1044: "\uF735", "fiveoldstyle", "\u2075", "fivesuperior",
1045: "\uFB02", "fl", "\u0192", "florin", "\u0034", "four",
1046: "\u2084", "fourinferior", "\uF734", "fouroldstyle",
1047: "\u2074", "foursuperior", "\u2044", "fraction", "\u2215",
1048: "fraction", "\u20A3", "franc", "\u0067", "g", "\u03B3",
1049: "gamma", "\u011F", "gbreve", "\u01E7", "gcaron", "\u011D",
1050: "gcircumflex", "\u0123", "gcommaaccent", "\u0121",
1051: "gdotaccent", "\u00DF", "germandbls", "\u2207", "gradient",
1052: "\u0060", "grave", "\u0300", "gravecomb", "\u003E",
1053: "greater", "\u2265", "greaterequal", "\u00AB",
1054: "guillemotleft", "\u00BB", "guillemotright", "\u2039",
1055: "guilsinglleft", "\u203A", "guilsinglright", "\u0068", "h",
1056: "\u0127", "hbar", "\u0125", "hcircumflex", "\u2665",
1057: "heart", "\u0309", "hookabovecomb", "\u2302", "house",
1058: "\u02DD", "hungarumlaut", "\u002D", "hyphen", "\u00AD",
1059: "hyphen", "\uF6E5", "hypheninferior", "\uF6E6",
1060: "hyphensuperior", "\u0069", "i", "\u00ED", "iacute",
1061: "\u012D", "ibreve", "\u00EE", "icircumflex", "\u00EF",
1062: "idieresis", "\u00EC", "igrave", "\u0133", "ij", "\u012B",
1063: "imacron", "\u221E", "infinity", "\u222B", "integral",
1064: "\u2321", "integralbt", "\uF8F5", "integralex", "\u2320",
1065: "integraltp", "\u2229", "intersection", "\u25D8",
1066: "invbullet", "\u25D9", "invcircle", "\u263B",
1067: "invsmileface", "\u012F", "iogonek", "\u03B9", "iota",
1068: "\u03CA", "iotadieresis", "\u0390", "iotadieresistonos",
1069: "\u03AF", "iotatonos", "\uF6ED", "isuperior", "\u0129",
1070: "itilde", "\u006A", "j", "\u0135", "jcircumflex", "\u006B",
1071: "k", "\u03BA", "kappa", "\u0137", "kcommaaccent", "\u0138",
1072: "kgreenlandic", "\u006C", "l", "\u013A", "lacute",
1073: "\u03BB", "lambda", "\u013E", "lcaron", "\u013C",
1074: "lcommaaccent", "\u0140", "ldot", "\u003C", "less",
1075: "\u2264", "lessequal", "\u258C", "lfblock", "\u20A4",
1076: "lira", "\uF6C0", "ll", "\u2227", "logicaland", "\u00AC",
1077: "logicalnot", "\u2228", "logicalor", "\u017F", "longs",
1078: "\u25CA", "lozenge", "\u0142", "lslash", "\uF6EE",
1079: "lsuperior", "\u2591", "ltshade", "\u006D", "m", "\u00AF",
1080: "macron", "\u02C9", "macron", "\u2642", "male", "\u2212",
1081: "minus", "\u2032", "minute", "\uF6EF", "msuperior",
1082: "\u00B5", "mu", "\u03BC", "mu", "\u00D7", "multiply",
1083: "\u266A", "musicalnote", "\u266B", "musicalnotedbl",
1084: "\u006E", "n", "\u0144", "nacute", "\u0149", "napostrophe",
1085: "\u0148", "ncaron", "\u0146", "ncommaaccent", "\u0039",
1086: "nine", "\u2089", "nineinferior", "\uF739", "nineoldstyle",
1087: "\u2079", "ninesuperior", "\u2209", "notelement", "\u2260",
1088: "notequal", "\u2284", "notsubset", "\u207F", "nsuperior",
1089: "\u00F1", "ntilde", "\u03BD", "nu", "\u0023", "numbersign",
1090: "\u006F", "o", "\u00F3", "oacute", "\u014F", "obreve",
1091: "\u00F4", "ocircumflex", "\u00F6", "odieresis", "\u0153",
1092: "oe", "\u02DB", "ogonek", "\u00F2", "ograve", "\u01A1",
1093: "ohorn", "\u0151", "ohungarumlaut", "\u014D", "omacron",
1094: "\u03C9", "omega", "\u03D6", "omega1", "\u03CE",
1095: "omegatonos", "\u03BF", "omicron", "\u03CC",
1096: "omicrontonos", "\u0031", "one", "\u2024",
1097: "onedotenleader", "\u215B", "oneeighth", "\uF6DC",
1098: "onefitted", "\u00BD", "onehalf", "\u2081", "oneinferior",
1099: "\uF731", "oneoldstyle", "\u00BC", "onequarter", "\u00B9",
1100: "onesuperior", "\u2153", "onethird", "\u25E6",
1101: "openbullet", "\u00AA", "ordfeminine", "\u00BA",
1102: "ordmasculine", "\u221F", "orthogonal", "\u00F8", "oslash",
1103: "\u01FF", "oslashacute", "\uF6F0", "osuperior", "\u00F5",
1104: "otilde", "\u0070", "p", "\u00B6", "paragraph", "\u0028",
1105: "parenleft", "\uF8ED", "parenleftbt", "\uF8EC",
1106: "parenleftex", "\u208D", "parenleftinferior",
1107: "\u207D",
1108: "parenleftsuperior",
1109: "\uF8EB",
1110: "parenlefttp",
1111: "\u0029",
1112: "parenright",
1113: "\uF8F8",
1114: "parenrightbt",
1115: "\uF8F7",
1116: "parenrightex",
1117: "\u208E",
1118: "parenrightinferior",
1119: "\u207E",
1120: "parenrightsuperior",
1121: "\uF8F6",
1122: "parenrighttp",
1123: "\u2202",
1124: "partialdiff",
1125: "\u0025",
1126: "percent",
1127: "\u002E",
1128: "period",
1129: "\u00B7",
1130: "periodcentered",
1131: "\u2219",
1132: "periodcentered",
1133: "\uF6E7",
1134: "periodinferior",
1135: "\uF6E8",
1136: "periodsuperior",
1137: "\u22A5",
1138: "perpendicular",
1139: "\u2030",
1140: "perthousand",
1141: "\u20A7",
1142: "peseta",
1143: "\u03C6",
1144: "phi",
1145: "\u03D5",
1146: "phi1",
1147: "\u03C0",
1148: "pi",
1149: "\u002B",
1150: "plus",
1151: "\u00B1",
1152: "plusminus",
1153: "\u211E",
1154: "prescription",
1155: "\u220F",
1156: "product",
1157: "\u2282",
1158: "propersubset",
1159: "\u2283",
1160: "propersuperset",
1161: "\u221D",
1162: "proportional",
1163: "\u03C8",
1164: "psi",
1165: "\u0071",
1166: "q",
1167: "\u003F",
1168: "question",
1169: "\u00BF",
1170: "questiondown",
1171: "\uF7BF",
1172: "questiondownsmall",
1173: "\uF73F",
1174: "questionsmall",
1175: "\"",
1176: "quotedbl",
1177: // "\u0022", "quotedbl",
1178: "\u201E", "quotedblbase", "\u201C", "quotedblleft",
1179: "\u201D", "quotedblright", "\u2018", "quoteleft", "\u201B",
1180: "quotereversed", "\u2019", "quoteright", "\u201A",
1181: "quotesinglbase", "\u0027", "quotesingle", "\u0072", "r",
1182: "\u0155", "racute", "\u221A", "radical", "\uF8E5",
1183: "radicalex", "\u0159", "rcaron", "\u0157", "rcommaaccent",
1184: "\u2286", "reflexsubset", "\u2287", "reflexsuperset",
1185: "\u00AE", "registered", "\uF8E8", "registersans", "\uF6DA",
1186: "registerserif", "\u2310", "revlogicalnot", "\u03C1",
1187: "rho", "\u02DA", "ring", "\uF6F1", "rsuperior", "\u2590",
1188: "rtblock", "\uF6DD", "rupiah", "\u0073", "s", "\u015B",
1189: "sacute", "\u0161", "scaron", "\u015F", "scedilla",
1190: "\uF6C2", "scedilla", "\u015D", "scircumflex", "\u0219",
1191: "scommaaccent", "\u2033", "second", "\u00A7", "section",
1192: "\u003B", "semicolon", "\u0037", "seven", "\u215E",
1193: "seveneighths", "\u2087", "seveninferior", "\uF737",
1194: "sevenoldstyle", "\u2077", "sevensuperior", "\u2592",
1195: "shade", "\u03C3", "sigma", "\u03C2", "sigma1", "\u223C",
1196: "similar", "\u0036", "six", "\u2086", "sixinferior",
1197: "\uF736", "sixoldstyle", "\u2076", "sixsuperior", "\u002F",
1198: "slash", "\u263A", "smileface", "\u0020", "space",
1199: "\u00A0", "space", "\u2660", "spade", "\uF6F2",
1200: "ssuperior", "\u00A3", "sterling", "\u220B", "suchthat",
1201: "\u2211", "summation", "\u263C", "sun", "\u0074", "t",
1202: "\u03C4", "tau", "\u0167", "tbar", "\u0165", "tcaron",
1203: "\u0163", "tcommaaccent", "\u021B", "tcommaaccent",
1204: "\u2234", "therefore", "\u03B8", "theta", "\u03D1",
1205: "theta1", "\u00FE", "thorn", "\u0033", "three", "\u215C",
1206: "threeeighths", "\u2083", "threeinferior", "\uF733",
1207: "threeoldstyle", "\u00BE", "threequarters", "\uF6DE",
1208: "threequartersemdash", "\u00B3", "threesuperior", "\u02DC",
1209: "tilde", "\u0303", "tildecomb", "\u0384", "tonos",
1210: "\u2122", "trademark", "\uF8EA", "trademarksans", "\uF6DB",
1211: "trademarkserif", "\u25BC", "triagdn", "\u25C4", "triaglf",
1212: "\u25BA", "triagrt", "\u25B2", "triagup", "\uF6F3",
1213: "tsuperior", "\u0032", "two", "\u2025", "twodotenleader",
1214: "\u2082", "twoinferior", "\uF732", "twooldstyle", "\u00B2",
1215: "twosuperior", "\u2154", "twothirds", "\u0075", "u",
1216: "\u00FA", "uacute", "\u016D", "ubreve", "\u00FB",
1217: "ucircumflex", "\u00FC", "udieresis", "\u00F9", "ugrave",
1218: "\u01B0", "uhorn", "\u0171", "uhungarumlaut", "\u016B",
1219: "umacron", "\u005F", "underscore", "\u2017",
1220: "underscoredbl", "\u222A", "union", "\u2200", "universal",
1221: "\u0173", "uogonek", "\u2580", "upblock", "\u03C5",
1222: "upsilon", "\u03CB", "upsilondieresis", "\u03B0",
1223: "upsilondieresistonos", "\u03CD", "upsilontonos", "\u016F",
1224: "uring", "\u0169", "utilde", "\u0076", "v", "\u0077", "w",
1225: "\u1E83", "wacute", "\u0175", "wcircumflex", "\u1E85",
1226: "wdieresis", "\u2118", "weierstrass", "\u1E81", "wgrave",
1227: "\u0078", "x", "\u03BE", "xi", "\u0079", "y", "\u00FD",
1228: "yacute", "\u0177", "ycircumflex", "\u00FF", "ydieresis",
1229: "\u00A5", "yen", "\u1EF3", "ygrave", "\u007A", "z",
1230: "\u017A", "zacute", "\u017E", "zcaron", "\u017C",
1231: "zdotaccent", "\u0030", "zero", "\u2080", "zeroinferior",
1232: "\uF730", "zerooldstyle", "\u2070", "zerosuperior",
1233: "\u03B6", "zeta" };
1234:
1235: /**
1236: * Return the glyphname from a character,
1237: * eg, charToGlyphName('\\') returns "backslash"
1238: *
1239: * @param ch glyph to evaluate
1240: * @return the name of the glyph
1241: */
1242: public static final String charToGlyphName(char ch) {
1243: return stringToGlyph(new Character(ch).toString());
1244: }
1245:
1246: /**
1247: * Return the glyphname from a string,
1248: * eg, glyphToString("\\") returns "backslash"
1249: *
1250: * @param name glyph to evaluate
1251: * @return the name of the glyph
1252: * TODO: javadocs for glyphToString and stringToGlyph are confused
1253: * TODO: Improve method names
1254: */
1255: public static final String glyphToString(String name) {
1256: for (int i = 0; i < UNICODE_GLYPHS.length; i += 2) {
1257: if (UNICODE_GLYPHS[i + 1].equals(name)) {
1258: return UNICODE_GLYPHS[i];
1259: }
1260: }
1261: return "";
1262: }
1263:
1264: /**
1265: * Return the string representation of a glyphname,
1266: * eg stringToGlyph("backslash") returns "\\"
1267: *
1268: * @param name name of the glyph
1269: * @return the string representation
1270: */
1271: public static String stringToGlyph(String name) {
1272: for (int i = 0; i < UNICODE_GLYPHS.length; i += 2) {
1273: if (UNICODE_GLYPHS[i].equals(name)) {
1274: return UNICODE_GLYPHS[i + 1];
1275: }
1276: }
1277: return "";
1278: }
1279:
1280: }
|