Exemplo n.º 1
0
        public override void Open()
        {
            Close();

            BinaryReader br = IOStream.GetBinaryReader();

            int tableOffset = br.ReadInt32();
            int dataOffset  = br.ReadInt32();
            int tableSize   = dataOffset - tableOffset;

            byte[] table = null;
            if (tableSize != 0)
            {
                using (StreamSegment tableSegment = IOStream.GetStreamSegment(tableOffset, tableSize))
                    using (HalfByteStream tableStream = new HalfByteStream(tableSegment))
                    {
                        table = new byte[tableSize * 2];
                        tableStream.EnsureRead(table, 0, table.Length);
                    }
            }

            Table = table;
            if (!IOStream.IsEndOfStream())
            {
                TimReader = new TimFileReader(IOStream.GetStreamSegment(IOStream.Position));
            }
        }
Exemplo n.º 2
0
        public void WriteFontCharactersWidths(byte[] charactersWidths)
        {
            BinaryWriter bw = _output.GetBinaryWriter();

            int tableSize = charactersWidths.Length / 2;

            const int tableOffset = 8;
            int       dataOffset  = tableOffset + tableSize;

            bw.Write(tableOffset);
            bw.Write(dataOffset);

            if (tableSize != 0)
            {
                using (HalfByteStream tableStream = new HalfByteStream(_output))
                    tableStream.Write(charactersWidths, 0, charactersWidths.Length);
            }
        }