39 lines
1013 B
Python
39 lines
1013 B
Python
|
|
# 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()
|
||
|
|
|