refactored saveXML() method
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@251 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
parent
4afb257387
commit
fe665777ea
@ -42,7 +42,7 @@ Dumping 'prep' table...
|
||||
"""
|
||||
|
||||
#
|
||||
# $Id: __init__.py,v 1.28 2002-05-15 07:50:06 jvr Exp $
|
||||
# $Id: __init__.py,v 1.29 2002-05-22 20:15:10 jvr Exp $
|
||||
#
|
||||
|
||||
import os
|
||||
@ -186,32 +186,46 @@ class TTFont:
|
||||
numGlyphs = self['maxp'].numGlyphs
|
||||
if progress:
|
||||
progress.set(0, numTables * numGlyphs)
|
||||
if not splitTables:
|
||||
|
||||
writer = xmlWriter.XMLWriter(fileOrPath)
|
||||
writer.begintag("ttFont", sfntVersion=`self.sfntVersion`[1:-1],
|
||||
ttLibVersion=version)
|
||||
writer.newline()
|
||||
|
||||
if not splitTables:
|
||||
writer.newline()
|
||||
else:
|
||||
# 'fileOrPath' must now be a path
|
||||
path, ext = os.path.splitext(fileOrPath)
|
||||
fileNameTemplate = path + ".%s" + ext
|
||||
collection = xmlWriter.XMLWriter(fileOrPath)
|
||||
collection.begintag("ttFont", sfntVersion=`self.sfntVersion`[1:-1],
|
||||
ttLibVersion=version)
|
||||
collection.newline()
|
||||
|
||||
for i in range(numTables):
|
||||
tag = tables[i]
|
||||
xmlTag = tagToXML(tag)
|
||||
if splitTables:
|
||||
tablePath = fileNameTemplate % tagToIdentifier(tag)
|
||||
writer = xmlWriter.XMLWriter(tablePath)
|
||||
writer.begintag("ttFont", ttLibVersion=version)
|
||||
tableWriter = xmlWriter.XMLWriter(tablePath)
|
||||
tableWriter.begintag("ttFont", ttLibVersion=version)
|
||||
tableWriter.newline()
|
||||
tableWriter.newline()
|
||||
writer.simpletag(xmlTag, src=os.path.basename(tablePath))
|
||||
writer.newline()
|
||||
else:
|
||||
tableWriter = writer
|
||||
self._tableToXML(tableWriter, tag, xmlTag, progress)
|
||||
if splitTables:
|
||||
tableWriter.endtag("ttFont")
|
||||
tableWriter.newline()
|
||||
tableWriter.close()
|
||||
if progress:
|
||||
progress.set(i * numGlyphs, numTables * numGlyphs)
|
||||
writer.endtag("ttFont")
|
||||
writer.newline()
|
||||
collection.simpletag(xmlTag, src=os.path.basename(tablePath))
|
||||
collection.newline()
|
||||
writer.close()
|
||||
if self.verbose:
|
||||
debugmsg("Done dumping TTX")
|
||||
|
||||
def _tableToXML(self, writer, tag, xmlTag, progress):
|
||||
if self.has_key(tag):
|
||||
table = self[tag]
|
||||
report = "Dumping '%s' table..." % tag
|
||||
@ -224,7 +238,7 @@ class TTFont:
|
||||
else:
|
||||
print report
|
||||
if not self.has_key(tag):
|
||||
continue
|
||||
return
|
||||
if hasattr(table, "ERROR"):
|
||||
writer.begintag(xmlTag, ERROR="decompilation error")
|
||||
else:
|
||||
@ -237,22 +251,6 @@ class TTFont:
|
||||
writer.endtag(xmlTag)
|
||||
writer.newline()
|
||||
writer.newline()
|
||||
if splitTables:
|
||||
writer.endtag("ttFont")
|
||||
writer.newline()
|
||||
writer.close()
|
||||
if progress:
|
||||
progress.set(i * numGlyphs, numTables * numGlyphs)
|
||||
if not splitTables:
|
||||
writer.endtag("ttFont")
|
||||
writer.newline()
|
||||
writer.close()
|
||||
else:
|
||||
collection.endtag("ttFont")
|
||||
collection.newline()
|
||||
collection.close()
|
||||
if self.verbose:
|
||||
debugmsg("Done dumping TTX")
|
||||
|
||||
def importXML(self, file, progress=None):
|
||||
"""Import a TTX file (an XML-based text format), so as to recreate
|
||||
|
Loading…
x
Reference in New Issue
Block a user