Home | History | Annotate | Download | only in src
      1 # Copyright (c) 2012 Google Inc. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 # This is a simple utility for dumping out the header of a compressed file, and
      6 # is suitable for doing spot checks of compressed. files. However, this only
      7 # implements the "long" form of the table directory.
      8 
      9 import struct
     10 import sys
     11 
     12 def dump_woff2_header(header):
     13   header_values = struct.unpack('>IIIHHIHHIIIII', header[:44])
     14   for i, key in enumerate([
     15     'signature',
     16     'flavor',
     17     'length',
     18     'numTables',
     19     'reserved',
     20     'totalSfntSize',
     21     'majorVersion',
     22     'minorVersion',
     23     'metaOffset',
     24     'metaOrigLength',
     25     'privOffset',
     26     'privLength']):
     27     print key, header_values[i]
     28   numTables = header_values[3]
     29   for i in range(numTables):
     30     entry = struct.unpack('>IIIII', header[44+20*i:44+20*(i+1)])
     31     print '%08x %d %d %d %d' % entry
     32 
     33 def main():
     34   header = file(sys.argv[1]).read()
     35   dump_woff2_header(header)
     36 
     37 main()
     38 
     39