public void Read()
{
try
{
#if DEBUG
this.fontData.Position = DirectoryEntry.Offset;
#endif
this.bytes = new byte[DirectoryEntry.PaddedLength];
Buffer.BlockCopy(this.fontData.Data, DirectoryEntry.Offset, bytes, 0, DirectoryEntry.Length);
this.format = this.fontData.ReadUShort();
this.count = this.fontData.ReadUShort();
this.stringOffset = this.fontData.ReadUShort();
for (int idx = 0; idx < this.count; idx++)
{
NameRecord nrec = ReadNameRecord();
byte[] value = new byte[nrec.length];
Buffer.BlockCopy(this.fontData.Data, DirectoryEntry.Offset + this.stringOffset + nrec.offset, value, 0, nrec.length);
//Debug.WriteLine(nrec.platformID.ToString());
// Read font name and style
if (nrec.platformID == 0 || nrec.platformID == 3)
{
if (nrec.nameID == 1 && nrec.languageID == 0x0409)
{
if (String.IsNullOrEmpty(Name))
Name = Encoding.BigEndianUnicode.GetString(value, 0, value.Length);
}
if (nrec.nameID == 2 && nrec.languageID == 0x0409)
{
if (String.IsNullOrEmpty(Style))
Style = Encoding.BigEndianUnicode.GetString(value, 0, value.Length);
}
}
//string s1 = Encoding.Default.GetString(name);
//string s2 = Encoding.BigEndianUnicode.GetString(name);
//Debug.WriteLine(s1);
//Debug.WriteLine(s2);
}
Debug.Assert(!String.IsNullOrEmpty(Name));
}
catch (Exception ex)
{
throw new PdfSharpException(PSSR.ErrorReadingFontData, ex);
}
}