iTextSharp.text.pdf.BaseFont.CreateEncoding C# (CSharp) Метод

CreateEncoding() защищенный Метод

protected CreateEncoding ( ) : void
Результат void
        protected void CreateEncoding()
        {
            if (encoding.StartsWith("#")) {
                specialMap = new IntHashtable();
                StringTokenizer tok = new StringTokenizer(encoding.Substring(1), " ,\t\n\r\f");
                if (tok.NextToken().Equals("full")) {
                    while (tok.HasMoreTokens()) {
                        String order = tok.NextToken();
                        String name = tok.NextToken();
                        char uni = (char)int.Parse(tok.NextToken(), NumberStyles.HexNumber);
                        int orderK;
                        if (order.StartsWith("'"))
                            orderK = (int)order[1];
                        else
                            orderK = int.Parse(order);
                        orderK %= 256;
                        specialMap[(int)uni] = orderK;
                        differences[orderK] = name;
                        unicodeDifferences[orderK] = uni;
                        widths[orderK] = GetRawWidth((int)uni, name);
                        charBBoxes[orderK] = GetRawCharBBox((int)uni, name);
                    }
                }
                else {
                    int k = 0;
                    if (tok.HasMoreTokens())
                        k = int.Parse(tok.NextToken());
                    while (tok.HasMoreTokens() && k < 256) {
                        String hex = tok.NextToken();
                        int uni = int.Parse(hex, NumberStyles.HexNumber) % 0x10000;
                        String name = GlyphList.UnicodeToName(uni);
                        if (name != null) {
                            specialMap[uni] = k;
                            differences[k] = name;
                            unicodeDifferences[k] = (char)uni;
                            widths[k] = GetRawWidth(uni, name);
                            charBBoxes[k] = GetRawCharBBox(uni, name);
                            ++k;
                        }
                    }
                }
                for (int k = 0; k < 256; ++k) {
                    if (differences[k] == null) {
                        differences[k] = notdef;
                    }
                }
            }
            else if (fontSpecific) {
                for (int k = 0; k < 256; ++k) {
                    widths[k] = GetRawWidth(k, null);
                    charBBoxes[k] = GetRawCharBBox(k, null);
                }
            }
            else {
                string s;
                string name;
                char c;
                byte[] b = new byte[1];
                for (int k = 0; k < 256; ++k) {
                    b[0] = (byte)k;
                    s = PdfEncodings.ConvertToString(b, encoding);
                    if (s.Length > 0) {
                        c = s[0];
                    }
                    else {
                        c = '?';
                    }
                    name = GlyphList.UnicodeToName((int)c);
                    if (name == null)
                        name = notdef;
                    differences[k] = name;
                    this.UnicodeDifferences[k] = c;
                    widths[k] = GetRawWidth((int)c, name);
                    charBBoxes[k] = GetRawCharBBox((int)c, name);
                }
            }
        }