Conversion: When subsetting fonts, handle multiple @font-face rules referring to the same physical font

This commit is contained in:
Kovid Goyal 2013-01-11 12:39:20 +05:30
parent ae00ff119a
commit 0b40e8a864

View File

@ -36,7 +36,15 @@ class SubsetFonts(object):
self.oeb.manifest.remove(font['item']) self.oeb.manifest.remove(font['item'])
font['rule'].parentStyleSheet.deleteRule(font['rule']) font['rule'].parentStyleSheet.deleteRule(font['rule'])
fonts = {}
for font in self.embedded_fonts: for font in self.embedded_fonts:
item, chars = font['item'], font['chars']
if item.href in fonts:
fonts[item.href]['chars'] |= chars
else:
fonts[item.href] = font
for font in fonts.itervalues():
if not font['chars']: if not font['chars']:
self.log('The font %s is unused. Removing it.'%font['src']) self.log('The font %s is unused. Removing it.'%font['src'])
remove(font) remove(font)