Пример #1
0
        protected void ReadPrivate(BinaryReaderFont reader)
        {
            long start = reader.Position;

            //Console.WriteLine("private dict: {0}", topDict.Private);
            privateDict = CFFPrivateDict.Read(reader, (int)topDict.Private.values[0]);
            //Console.WriteLine("private dict: {0}", privateDict);
            //reader.Position = position + (int)topDict.Private.values[1];
            //CFFIndex index = CFFIndex.Read(reader);
            //int[] offset = index.offset;
            //Console.WriteLine("local subr index: {0}", index);

            if (privateDict.Subrs > 0)
            {
                reader.Position = start + (int)privateDict.Subrs;
                CFFIndex index  = CFFIndex.Read(reader);
                int[]    offset = index.ReadAllOffsets(reader);
                //Console.WriteLine("local subr index: {0}", index);
                localSubr = new byte[index.count][];
                for (int i = 0; i < offset.Length - 1; i++)
                {
                    int length = offset[i + 1] - offset[i];
                    localSubr[i] = reader.ReadBytes(length);
                }
            }
            charString.localSubr = localSubr;
        }
Пример #2
0
        protected void ReadTopDict(BinaryReaderFont reader)
        {
            CFFIndex index = CFFIndex.Read(reader);

            //Console.WriteLine("topDict: {0}", index);
            int[] offset = index.ReadAllOffsets(reader);
            int   length = offset[1] - offset[0];

            topDict = CFFTopDict.Read(reader, length);
        }
Пример #3
0
        protected void ReadName(BinaryReaderFont reader)
        {
            CFFIndex index = CFFIndex.Read(reader);

            int[] offset = index.ReadAllOffsets(reader);
            names = new string[index.count];
            int length = offset.Length - 1;

            for (int i = 0; i < length; i++)
            {
                int byteSize = offset[i + 1] - offset[i];
                names[i] = reader.ReadString(byteSize);
            }
        }
Пример #4
0
        protected void ReadGlobalSubr(BinaryReaderFont reader)
        {
            CFFIndex index = CFFIndex.Read(reader);

            int[] offset = index.ReadAllOffsets(reader);
            //Console.WriteLine("global subr index: {0}", index);
            globalSubr = new byte[index.count][];
            int length = offset.Length - 1;

            for (int i = 0; i < length; i++)
            {
                int byteSize = offset[i + 1] - offset[i];
                globalSubr[i] = reader.ReadBytes(byteSize);
            }
            charString.globalSubr = globalSubr;
        }
Пример #5
0
        protected void ReadString(BinaryReaderFont reader)
        {
            CFFIndex index = CFFIndex.Read(reader);

            int[] offset = index.ReadAllOffsets(reader);
            //Console.WriteLine("string index: {0}", index);
            strings = new string[index.count];
            int length = offset.Length - 1;

            for (int i = 0; i < length; i++)
            {
                int byteSize = offset[i + 1] - offset[i];
                //value.strings[i] = value.ConvertString(reader.ReadBytes(length));
                strings[i] = reader.ReadString(byteSize);
            }
        }