PdfSharp.Fonts.OpenType.NameTable.Read C# (CSharp) Méthode

Read() public méthode

public Read ( ) : void
Résultat void
    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);
      }
    }