/// <summary> /// Updates the checkSumAdjustment field in the head table. /// </summary> private void WriteChecksumAdjustment() { HeaderTable head = (HeaderTable)tables[TableNames.Head]; // Move to beginning of head table and skip the version no and // font revision no fields. stream.Position = head.Entry.Offset + 2 * PrimitiveSizes.Fixed; stream.WriteULong(CalculateCheckSumAdjustment()); }
/// <summary> /// Writes the contents of the head table to the supplied stream. /// </summary> /// <param name="writer"></param> protected internal override void Write(FontFileWriter writer) { FontFileStream stream = writer.Stream; stream.WriteFixed(versionNo); stream.WriteFixed(fontRevision); stream.WriteULong(0); stream.WriteULong(0x5F0F3CF5); stream.WriteUShort(flags); stream.WriteUShort(unitsPermEm); stream.WriteDateTime((long)(createDate - BaseDate).TotalSeconds); stream.WriteDateTime((long)(updateDate - BaseDate).TotalSeconds); stream.WriteShort(xMin); stream.WriteShort(yMin); stream.WriteShort(xMax); stream.WriteShort(yMax); stream.WriteUShort(macStyle); stream.WriteUShort(lowestRecPPEM); stream.WriteShort(fontDirectionHint); stream.WriteShort(1); stream.WriteShort(glyphDataFormat); }