# Copyright (c) 2012 Google Inc. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # This is a simple utility for dumping out the header of a compressed file, and # is suitable for doing spot checks of compressed. files. However, this only # implements the "long" form of the table directory. import struct import sys def dump_woff2_header(header): header_values = struct.unpack('>IIIHHIHHIIIII', header[:44]) for i, key in enumerate([ 'signature', 'flavor', 'length', 'numTables', 'reserved', 'totalSfntSize', 'majorVersion', 'minorVersion', 'metaOffset', 'metaOrigLength', 'privOffset', 'privLength']): print key, header_values[i] numTables = header_values[3] for i in range(numTables): entry = struct.unpack('>IIIII', header[44+20*i:44+20*(i+1)]) print '%08x %d %d %d %d' % entry def main(): header = file(sys.argv[1]).read() dump_woff2_header(header) main()