iTextSharp.text.pdf.CFFFontSubset.CreateNewStringIndex C# (CSharp) Метод

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

protected CreateNewStringIndex ( int Font ) : void
Font int
Результат void
        protected void CreateNewStringIndex(int Font)
        {
            String fdFontName = fonts[Font].name+"-OneRange";
            if (fdFontName.Length > 127)
                fdFontName = fdFontName.Substring(0,127);
            String extraStrings = "Adobe"+"Identity"+fdFontName;

            int origStringsLen = stringOffsets[stringOffsets.Length-1]
            - stringOffsets[0];
            int stringsBaseOffset = stringOffsets[0]-1;

            byte stringsIndexOffSize;
            if (origStringsLen+extraStrings.Length <= 0xff) stringsIndexOffSize = 1;
            else if (origStringsLen+extraStrings.Length <= 0xffff) stringsIndexOffSize = 2;
            else if (origStringsLen+extraStrings.Length <= 0xffffff) stringsIndexOffSize = 3;
            else stringsIndexOffSize = 4;

            OutputList.Add(new UInt16Item((char)((stringOffsets.Length-1)+3))); // count
            OutputList.Add(new UInt8Item((char)stringsIndexOffSize)); // offSize
            foreach (int stringOffset in stringOffsets)
                OutputList.Add(new IndexOffsetItem(stringsIndexOffSize,
                stringOffset-stringsBaseOffset));
            int currentStringsOffset = stringOffsets[stringOffsets.Length-1]
            - stringsBaseOffset;
            //l.Add(new IndexOffsetItem(stringsIndexOffSize,currentStringsOffset));
            currentStringsOffset += ("Adobe").Length;
            OutputList.Add(new IndexOffsetItem(stringsIndexOffSize,currentStringsOffset));
            currentStringsOffset += ("Identity").Length;
            OutputList.Add(new IndexOffsetItem(stringsIndexOffSize,currentStringsOffset));
            currentStringsOffset += fdFontName.Length;
            OutputList.Add(new IndexOffsetItem(stringsIndexOffSize,currentStringsOffset));

            OutputList.Add(new RangeItem(buf,stringOffsets[0],origStringsLen));
            OutputList.Add(new StringItem(extraStrings));
        }