From 787184f15b6358b27e4a5358148760406b6a6921 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 2 Nov 2014 10:13:32 +0530 Subject: [PATCH] Conversion: Handle input documents with crazy font sizes (1000pt +) --- src/calibre/ebooks/oeb/transforms/flatcss.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/oeb/transforms/flatcss.py b/src/calibre/ebooks/oeb/transforms/flatcss.py index c82dfd66d3..2bd300beab 100644 --- a/src/calibre/ebooks/oeb/transforms/flatcss.py +++ b/src/calibre/ebooks/oeb/transforms/flatcss.py @@ -62,9 +62,17 @@ class KeyMapper(object): endp = 0 if size < base else 36 diff = (abs(base - size) * 3) + ((36 - size) / 100) logb = abs(base - endp) - if logb == 0: - logb = 1e-6 - result = sign * math.log(diff, logb) + try: + result = sign * math.log(diff, logb) + except ValueError: + if diff < 0: + # Size is both very large and close to base + return 0 + if logb == 0: + logb = 1e-6 + if diff == 0: + diff = 1e-6 + result = sign * math.log(diff, logb) return result def __getitem__(self, ssize):