public override byte[] GetData(ushort[] glyfIndexes) { MemoryStream stream = new MemoryStream(); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_version.X), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_version.Y), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_fontRevision.X), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_fontRevision.Y), 0, 2); stream.Write(BinaryUtility.UInt32ToBytes(_checkSumAdjustment), 0, 4); stream.Write(BinaryUtility.UInt32ToBytes(_magicNumber), 0, 4); stream.Write(BinaryUtility.UInt16ToBytes(_flags), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_unitsPerEm), 0, 2); stream.Write(BinaryUtility.UInt64ToBytes((ulong)_created), 0, 8); stream.Write(BinaryUtility.UInt64ToBytes((ulong)_modified), 0, 8); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_xMin), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_yMin), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_xMax), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_yMax), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_macStyle), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_lowestRecPPEM), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_fontDirectionHint), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_indexToLocFormat), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_glyphDataFormat), 0, 2); stream.Position = 0; byte[] data = new byte[stream.Length]; stream.Read(data, 0, data.Length); return(data); }
public void Write(Stream stream) { byte[] bTag = System.Text.Encoding.ASCII.GetBytes(_tag); stream.Write(bTag, 0, bTag.Length); stream.Write(BinaryUtility.UInt32ToBytes((uint)_checksum), 0, 4); stream.Write(BinaryUtility.UInt32ToBytes((uint)_offset), 0, 4); stream.Write(BinaryUtility.UInt32ToBytes((uint)_length), 0, 4); }
private void writeOffset(uint value, System.IO.MemoryStream stream) { if (_indexToLocFormat == 0) { stream.Write(BinaryUtility.UInt16ToBytes((ushort)(value / 2)), 0, 2); } else { stream.Write(BinaryUtility.UInt32ToBytes(value), 0, 4); } }
public override byte[] GetData(ushort[] glyfIndexes) { MemoryStream stream = new MemoryStream(); stream.Write(BinaryUtility.UInt16ToBytes(_version), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_xAvgCharWidth), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usWeightClass), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usWidthClass), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_fsType), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySubscriptXSize), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySubscriptYSize), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySubscriptXOffset), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySubscriptYOffset), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySuperscriptXSize), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySuperscriptYSize), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySuperscriptXOffset), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_ySuperscriptYOffset), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_yStrikeoutSize), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_yStrikeoutPosition), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_sFamilyClass), 0, 2); stream.Write(_panose, 0, _panose.Length); for (int i = 0; i < _ulCharRange.Length; ++i) { stream.Write(BinaryUtility.UInt32ToBytes(_ulCharRange[i]), 0, 4); } stream.Write(_achVendID, 0, _achVendID.Length); stream.Write(BinaryUtility.UInt16ToBytes(_fsSelection), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_fsFirstCharIndex), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_fsLastCharIndex), 0, 2); if (_version > 0) { stream.Write(BinaryUtility.UInt16ToBytes((ushort)_sTypoAscender), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_sTypoDescender), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_sTypoLineGap), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usWinAscent), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usWinDescent), 0, 2); stream.Write(BinaryUtility.UInt32ToBytes(_ulCodePageRange1), 0, 4); stream.Write(BinaryUtility.UInt32ToBytes(_ulCodePageRange2), 0, 4); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_sxHeight), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)_sCapHeight), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usDefaultChar), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usBreakChar), 0, 2); stream.Write(BinaryUtility.UInt16ToBytes(_usMaxContext), 0, 2); } stream.Position = 0; byte[] data = new byte[stream.Length]; stream.Read(data, 0, data.Length); return(data); }
protected void writeHeader(Stream stream, uint tag) { stream.Write(BinaryUtility.UInt32ToBytes(tag), 0, 4); int numTables = _tables.Count; stream.Write(BinaryUtility.UInt16ToBytes((ushort)numTables), 0, 2); uint maxPow = maxPowerOf2(numTables); uint searchRange = maxPow * 16; stream.Write(BinaryUtility.UInt16ToBytes((ushort)searchRange), 0, 2); int entrySelector = (int)Math.Log(maxPow, 2); stream.Write(BinaryUtility.UInt16ToBytes((ushort)entrySelector), 0, 2); int rangeShift = (int)(numTables * 16 - searchRange); stream.Write(BinaryUtility.UInt16ToBytes((ushort)rangeShift), 0, 2); }
public override byte[] GetData(ushort[] glyfIndexes) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); ms.Write(BinaryUtility.UInt16ToBytes((ushort)_format.X), 0, 2); ms.Write(BinaryUtility.UInt16ToBytes((ushort)_format.Y), 0, 2); ms.Write(BinaryUtility.UInt16ToBytes((ushort)_italicAngle.X), 0, 2); ms.Write(BinaryUtility.UInt16ToBytes((ushort)_italicAngle.Y), 0, 2); ms.Write(BinaryUtility.UInt16ToBytes((ushort)_underlinePosition), 0, 2); ms.Write(BinaryUtility.UInt16ToBytes((ushort)_underlineThickness), 0, 2); ms.Write(BinaryUtility.UInt32ToBytes((uint)_isFixedPitch), 0, 4); ms.Write(BinaryUtility.UInt32ToBytes((uint)_minMemType42), 0, 4); ms.Write(BinaryUtility.UInt32ToBytes((uint)_maxMemType42), 0, 4); ms.Write(BinaryUtility.UInt32ToBytes((uint)_minMemType1), 0, 4); ms.Write(BinaryUtility.UInt32ToBytes((uint)_maxMemType1), 0, 4); ms.Write(BinaryUtility.UInt32ToBytes((uint)_maxMemType1), 0, 4); ms.Write(BinaryUtility.UInt16ToBytes(0), 0, 2); byte[] tempFontData = new byte[ms.Length]; ms.Position = 0; ms.Read(tempFontData, 0, tempFontData.Length); return(tempFontData); }
public byte[] GetData(FontMap map) { MemoryStream stream = new MemoryStream(); byte[] cmapData = CMapMapFormat4.CreateData(map); stream.Write(BinaryUtility.UInt16ToBytes(0), 0, 2); //version stream.Write(BinaryUtility.UInt16ToBytes(1), 0, 2); //number subtables stream.Write(BinaryUtility.UInt16ToBytes(3), 0, 2); //platformID stream.Write(BinaryUtility.UInt16ToBytes(1), 0, 2); //platformSpecificID stream.Write(BinaryUtility.UInt32ToBytes(12), 0, 4); //offset stream.Write(BinaryUtility.UInt16ToBytes(4), 0, 2); //format stream.Write(BinaryUtility.UInt16ToBytes((ushort)cmapData.Length), 0, 2); //length stream.Write(BinaryUtility.UInt16ToBytes(0), 0, 2); //_language stream.Write(cmapData, 0, cmapData.Length); byte[] fontData = new byte[stream.Length]; stream.Position = 0; stream.Read(fontData, 0, fontData.Length); return(fontData); }