private void ReadCreateFontIndirect(BinaryReader wmfReader, uint recordSize) { var font = new LogFont(); font.Height = EndianFlip(wmfReader.ReadInt16()); font.Width = EndianFlip(wmfReader.ReadInt16()); font.Escapement = EndianFlip(wmfReader.ReadInt16()); font.Orientation = EndianFlip(wmfReader.ReadInt16()); font.Weight = EndianFlip(wmfReader.ReadInt16()); font.IsItalic = (wmfReader.ReadByte() == 0x01); font.IsUnderline = (wmfReader.ReadByte() == 0x01); font.IsStrikeout = (wmfReader.ReadByte() == 0x01); font.Charset = wmfReader.ReadByte(); font.OutPrecision = wmfReader.ReadByte(); font.ClipPrecision = wmfReader.ReadByte(); font.Quality = wmfReader.ReadByte(); var pitchAndFamily = wmfReader.ReadByte(); font.FaceName = AsciiBytesToString(wmfReader.ReadBytes((int)(recordSize * 2) - 6 - 18)); font.FaceName = font.FaceName.Replace("\0", "").Trim(); // Split pitch and family font.Family = (FamilyFont)((pitchAndFamily & 0x01) + (pitchAndFamily & 0x02) + (pitchAndFamily & 0x03) + (pitchAndFamily & 0x04)); font.Pitch = (byte)((pitchAndFamily & 0x07) + (pitchAndFamily & 0x08)); _currentDC.CreateFontIndirect(font); }
public void CreateFontIndirect(LogFont font) { _objectTable.AddObject(font); }