#! /usr/bin/python # vim:ts=4:sw=4:softtabstop=4:smarttab:expandtab # For use with Topaz Scripts Version 2.3 class Unbuffered: def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) import sys sys.stdout=Unbuffered(sys.stdout) import os, getopt # local routines import convert2xml import flatxml2html import decode_meta import stylexml2css import getpagedim def usage(): print 'Usage: ' print ' ' print ' genhtml.py [--fixed-image] unencryptedBookDir' print ' ' print ' Options: ' print ' --fixed-image : force translation of fixed regions into svg images ' print ' ' def main(argv): bookDir = '' fixedimage = False if len(argv) == 0: argv = sys.argv try: opts, args = getopt.getopt(argv[1:], "h:",["fixed-image"]) except getopt.GetoptError, err: print str(err) usage() sys.exit(1) if len(opts) == 0 and len(args) == 0 : usage() sys.exit(1) for o, a in opts: if o =="-h": usage() sys.exit(0) if o =="--fixed-image": fixedimage = True bookDir = args[0] if not os.path.exists(bookDir) : print "Can not find directory with unencrypted book" sys.exit(1) dictFile = os.path.join(bookDir,'dict0000.dat') if not os.path.exists(dictFile) : print "Can not find dict0000.dat file" sys.exit(1) pageDir = os.path.join(bookDir,'page') if not os.path.exists(pageDir) : print "Can not find page directory in unencrypted book" sys.exit(1) imgDir = os.path.join(bookDir,'img') if not os.path.exists(imgDir) : print "Can not find image directory in unencrypted book" sys.exit(1) svgDir = os.path.join(bookDir,'svg') if not os.path.exists(svgDir) : print "Can not find svg directory in unencrypted book" print "please run gensvg.py before running genhtml.py" sys.exit(1) otherFile = os.path.join(bookDir,'other0000.dat') if not os.path.exists(otherFile) : print "Can not find other0000.dat in unencrypted book" sys.exit(1) metaFile = os.path.join(bookDir,'metadata0000.dat') if not os.path.exists(metaFile) : print "Can not find metadata0000.dat in unencrypted book" sys.exit(1) htmlFileName = "book.html" htmlstr = '\n' htmlstr += '\n' filenames = os.listdir(pageDir) filenames = sorted(filenames) print 'Processing ... ' htmlstr += '
\n' htmlstr += '\n' # process metadata and retrieve fontSize info print ' ', 'metadata0000.dat' fname = os.path.join(bookDir,'metadata0000.dat') xname = os.path.join(bookDir, 'metadata.txt') metastr = decode_meta.getMetaData(fname) file(xname, 'wb').write(metastr) meta_array = decode_meta.getMetaArray(fname) htmlstr += '