⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ttload.c

📁 source code: Covert TXT to PDF
💻 C
📖 第 1 页 / 共 5 页
字号:
          case 11: printf( " url_vendor" ); break;          case 12: printf( " url_designer" ); break;          case 13: printf( " license" ); break;          case 14: printf( " url_license" ); break;          case 15: printf( " reserved (15)" ); break;          case 16: printf( " prefered_family" ); break;          case 17: printf( " prefered_style" ); break;          case 18: printf( " mac_full_name" ); break;          case 19: printf( " sample_text" ); break;          case 20: printf( " cid_name" ); break;          default: printf( " unknown_type(%d)", cur->nameID );        }        /* printf platform/encoding id */        j = 0;        switch ( cur->platformID )        {          case 0:  /* Unicode encodings */            {              switch ( cur->encodingID )              {                case 0: printf( " unicode_1.0" ); break;                case 1: printf( " unicode_1.1" ); break;                case 2: printf( " ISO_10646" ); break;                case 3: printf( " unicode_2.0" ); break;                default:                  j = 1;              }              break;            }                    case 1:  /* Apple encodings */            {              switch ( cur->encodingID )              {                case 0: printf( " mac_Roman" ); break;                case 1: printf( " mac_Japanese" ); break;                case 2: printf( " mac_Chinese_traditional" ); break;                case 3: printf( " mac_Korean" ); break;                case 4: printf( " mac_Arabic" ); break;                case 5: printf( " mac_Hebrew" ); break;                case 6: printf( " mac_Greek" ); break;                case 7: printf( " mac_Russian" ); break;                case 8: printf( " mac_RSymbol" ); break;                case 9: printf( " mac_Devanagari" ); break;                case 10: printf( " mac_Gurmukhi" ); break;                case 11: printf( " mac_Gujarati" ); break;                case 12: printf( " mac_Oriya" ); break;                case 13: printf( " mac_Bengali" ); break;                case 14: printf( " mac_Tamil" ); break;                case 15: printf( " mac_Telugu" ); break;                case 16: printf( " mac_Kannada" ); break;                case 17: printf( " mac_Malayalam" ); break;                case 18: printf( " mac_Sinhalese" ); break;                case 19: printf( " mac_Burmese" ); break;                case 20: printf( " mac_Khmer" ); break;                case 21: printf( " mac_Thai" ); break;                case 22: printf( " mac_Laotian" ); break;                case 23: printf( " mac_Goergian" ); break;                case 24: printf( " mac_Armenian" ); break;                case 25: printf( " mac_Chinese_simplified" ); break;                case 26: printf( " mac_Tibetan" ); break;                case 27: printf( " mac_Mongolian" ); break;                case 28: printf( " mac_Geez" ); break;                case 29: printf( " mac_Slavic" ); break;                case 30: printf( " mac_Vietnamese" ); break;                case 31: printf( " mac_Sindhi" ); break;                case 32: printf( " mac_Uninterpreted" ); break;                default:                  j = 1;              }              break;            }                  case 2:  /* deprecated IDO encoding */            {              switch ( cur->encodingID )              {                case 0: printf( " iso_ASCII" ); break;                case 1: printf( " iso_10646" ); break;                case 2: printf( " iso_8859-1" ); break;                default:                  j = 1;              }              break;            }                    case 3:  /* Windows encodings */            {              switch ( cur->encodingID )              {                case 0:  printf( " win_symbol" ); break;                case 1:  printf( " win_unicode" ); break;                case 2:  printf( " win_shiftJIS" ); break;                case 3:  printf( " win_PRC" ); break;                case 4:  printf( " win_Big5" ); break;                case 5:  printf( " win_Wansung" ); break;                case 6:  printf( " win_Johab" ); break;                case 10: printf( " win_UCS4" ); break;                default:                  j = 1;              }              break;            }                    default:            j = 1;        }        if ( j == 1 )          printf( " unknown_encoding" );        printf( "\n    " );        /* printf language - XXXX for later ....*/        /* I know that M$ encoded strings are Unicode,            */        /* but this works reasonable well for debugging purposes. */        if ( cur->string )        {          for ( j = 0; j < (FT_UInt)cur->stringLength; j++ )          {            FT_Byte  c = (FT_Byte)*( cur->string + j );            if ( c < 32 || c > 127 )              c = '.';                          printf( "%c", c );          }        }        else          printf( "INVALID_ENTRY!!" );                  printf( "\n" );      }      printf( "\n" );    }    FT_TRACE2(( "loaded\n" ));    /* everything went well, update face->num_names */    face->num_names = (FT_UShort)num_names;  Exit:    return error;  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    TT_Free_Names                                                      */  /*                                                                       */  /* <Description>                                                         */  /*    Frees the name records.                                            */  /*                                                                       */  /* <Input>                                                               */  /*    face :: A handle to the target face object.                        */  /*                                                                       */  FT_LOCAL_DEF void  TT_Free_Names( TT_Face  face )  {    FT_Memory      memory = face->root.driver->root.memory;    TT_NameTable*  names  = &face->name_table;    /* free strings table */    FREE( names->names );    /* free strings storage */    FREE( names->storage );    names->numNameRecords = 0;    names->format         = 0;    names->storageOffset  = 0;  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    TT_Load_CMap                                                       */  /*                                                                       */  /* <Description>                                                         */  /*    Loads the cmap directory in a face object.  The cmaps itselves are */  /*    loaded on demand in the `ttcmap.c' module.                         */  /*                                                                       */  /* <Input>                                                               */  /*    face   :: A handle to the target face object.                      */  /*    stream :: A handle to the input stream.                            */  /*                                                                       */  /* <Return>                                                              */  /*    FreeType error code.  0 means success.                             */  /*                                                                       */  FT_LOCAL_DEF FT_Error  TT_Load_CMap( TT_Face    face,                FT_Stream  stream )  {    FT_Error    error;    FT_Memory   memory = stream->memory;    FT_Long     table_start;    TT_CMapDir  cmap_dir;    const FT_Frame_Field  cmap_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_CMapDir      FT_FRAME_START( 4 ),        FT_FRAME_USHORT( tableVersionNumber ),        FT_FRAME_USHORT( numCMaps ),      FT_FRAME_END    };    const FT_Frame_Field  cmap_rec_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_CMapTable      FT_FRAME_START( 4 ),        FT_FRAME_USHORT( format ),        FT_FRAME_USHORT( length ),      FT_FRAME_END    };    FT_TRACE2(( "CMaps " ));    error = face->goto_table( face, TTAG_cmap, stream, 0 );    if ( error )    {      error = SFNT_Err_CMap_Table_Missing;      goto Exit;    }    table_start = FILE_Pos();    if ( READ_Fields( cmap_fields, &cmap_dir ) )      goto Exit;    /* reserve space in face table for cmap tables */    if ( ALLOC_ARRAY( face->charmaps,                      cmap_dir.numCMaps,                      TT_CharMapRec ) )      goto Exit;    face->num_charmaps = cmap_dir.numCMaps;    {      TT_CharMap  charmap = face->charmaps;      TT_CharMap  limit   = charmap + face->num_charmaps;      /* read the header of each charmap first */      if ( ACCESS_Frame( face->num_charmaps * 8L ) )        goto Exit;      for ( ; charmap < limit; charmap++ )      {        TT_CMapTable*  cmap;        charmap->root.face = (FT_Face)face;        cmap               = &charmap->cmap;        cmap->loaded             = FALSE;        cmap->platformID         = GET_UShort();        cmap->platformEncodingID = GET_UShort();        cmap->offset             = (FT_ULong)GET_Long();      }      FORGET_Frame();      /* now read the rest of each table */      for ( charmap = face->charmaps; charmap < limit; charmap++ )      {        TT_CMapTable* cmap = &charmap->cmap;        if ( FILE_Seek( table_start + (FT_Long)cmap->offset ) ||             READ_Fields( cmap_rec_fields, cmap )             )          goto Exit;        cmap->offset = FILE_Pos();      }    }    FT_TRACE2(( "loaded\n" ));  Exit:    return error;  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    TT_Load_OS2                                                        */  /*                                                                       */  /* <Description>                                                         */  /*    Loads the OS2 table.                                               */  /*                                                                       */  /* <Input>                                                               */  /*    face   :: A handle to the target face object.                      */  /*    stream :: A handle to the input stream.                            */  /*                                                                       */  /* <Return>                                                              */  /*    FreeType error code.  0 means success.                             */  /*                                                                       */  FT_LOCAL_DEF FT_Error  TT_Load_OS2( TT_Face    face,               FT_Stream  stream )  {    FT_Error  error;    TT_OS2*   os2;    const FT_Frame_Field  os2_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_OS2      FT_FRAME_START( 78 ),        FT_FRAME_USHORT( version ),        FT_FRAME_SHORT ( xAvgCharWidth ),        FT_FRAME_USHORT( usWeightClass ),        FT_FRAME_USHORT( usWidthClass ),        FT_FRAME_SHORT ( fsType ),        FT_FRAME_SHORT ( ySubscriptXSize ),        FT_FRAME_SHORT ( ySubscriptYSize ),        FT_FRAME_SHORT ( ySubscriptXOffset ),        FT_FRAME_SHORT ( ySubscriptYOffset ),        FT_FRAME_SHORT ( ySuperscriptXSize ),        FT_FRAME_SHORT ( ySuperscriptYSize ),        FT_FRAME_SHORT ( ySuperscriptXOffset ),        FT_FRAME_SHORT ( ySuperscriptYOffset ),        FT_FRAME_SHORT ( yStrikeoutSize ),        FT_FRAME_SHORT ( yStrikeoutPosition ),        FT_FRAME_SHORT ( sFamilyClass ),        FT_FRAME_BYTE  ( panose[0] ),        FT_FRAME_BYTE  ( panose[1] ),        FT_FRAME_BYTE  ( panose[2] ),        FT_FRAME_BYTE  ( panose[3] ),        FT_FRAME_BYTE  ( panose[4] ),        FT_FRAME_BYTE  ( panose[5] ),        FT_FRAME_BYTE  ( panose[6] ),        FT_FRAME_BYTE  ( panose[7] ),        FT_FRAME_BYTE  ( panose[8] ),        FT_FRAME_BYTE  ( panose[9] ),        FT_FRAME_ULONG ( ulUnicodeRange1 ),        FT_FRAME_ULONG ( ulUnicodeRange2 ),        FT_FRAME_ULONG ( ulUnicodeRange3 ),        FT_FRAME_ULONG ( ulUnicodeRange4 ),        FT_FRAME_BYTE  ( achVendID[0] ),        FT_FRAME_BYTE  ( achVendID[1] ),        FT_FRAME_BYTE  ( achVendID[2] ),        FT_FRAME_BYTE  ( achVendID[3] ),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -