diff --git a/src/libprs500/ebooks/lrf/html/convert_from.py b/src/libprs500/ebooks/lrf/html/convert_from.py index 0c04fcf5bf..eb4149c521 100644 --- a/src/libprs500/ebooks/lrf/html/convert_from.py +++ b/src/libprs500/ebooks/lrf/html/convert_from.py @@ -1128,7 +1128,7 @@ class HTMLConverter(object): return key def font_size(val): - normal = 100 + normal = int(self.current_block.textStyle.attrs['fontsize']) normpts = str(normal/10) + 'pt' ans = self.unit_convert(val, pts=True, base_length=normpts) @@ -1205,6 +1205,15 @@ class HTMLConverter(object): style = font_style(val) elif key == 'font-variant': variant = font_variant(val) + + if 'font' in css: + css.pop('font') + css['font-family'] = family + css['font-weight'] = weight + css['font-style'] = style + css['font-size'] = str(t['fontsize']) + 'dpt' + if variant: + css['font-variant'] = variant key = font_key(family, style, weight) if self.fonts[family].has_key(key): @@ -1232,7 +1241,7 @@ class HTMLConverter(object): result = int(val) except ValueError: pass - m = re.search(r"\s*(-*[0-9]*\.?[0-9]*)\s*(%|em|px|mm|cm|in|pt|pc)", val) + m = re.search(r"\s*(-*[0-9]*\.?[0-9]*)\s*(%|em|px|mm|cm|in|dpt|pt|pc)", val) if m is not None and m.group(1): unit = float(m.group(1)) @@ -1245,8 +1254,11 @@ class HTMLConverter(object): result = unit * dpi elif m.group(2) == 'pt': result = unit * dpi/72. + elif m.group(2) == 'dpt': + result = unit * dpi/720. elif m.group(2) == 'em': - result = unit * 100 * (dpi/720.) + normal = int(self.current_block.textStyle.attrs['fontsize']) + result = unit * normal * (dpi/720.) elif m.group(2) == 'pc': result = unit * (dpi/72.) * 12 elif m.group(2) == 'mm':