mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-05 12:24:49 +02:00
Conversion pipeline: Respect max-width and max-height when calculating the effective size of an element
This commit is contained in:
parent
6143392ee9
commit
113ff417d6
1 changed files with 18 additions and 1 deletions
|
|
@ -253,7 +253,10 @@ def __init__(self, tree, path, oeb, opts, profile=PROFILES['PRS505'],
|
|||
upd = {}
|
||||
for prop in ('width', 'height'):
|
||||
val = elem.get(prop, '').strip()
|
||||
del elem.attrib[prop]
|
||||
try:
|
||||
del elem.attrib[prop]
|
||||
except:
|
||||
pass
|
||||
if val:
|
||||
if num_pat.match(val) is not None:
|
||||
val += 'px'
|
||||
|
|
@ -584,6 +587,13 @@ def width(self):
|
|||
if isinstance(result, (unicode, str, bytes)):
|
||||
result = self._profile.width
|
||||
self._width = result
|
||||
if 'max-width' in self._style:
|
||||
result = self._unit_convert(self._style['max-width'], base=base)
|
||||
if isinstance(result, (unicode, str, bytes)):
|
||||
result = self._width
|
||||
if result < self._width:
|
||||
self._width = result
|
||||
|
||||
return self._width
|
||||
|
||||
@property
|
||||
|
|
@ -607,6 +617,13 @@ def height(self):
|
|||
if isinstance(result, (unicode, str, bytes)):
|
||||
result = self._profile.height
|
||||
self._height = result
|
||||
if 'max-height' in self._style:
|
||||
result = self._unit_convert(self._style['max-height'], base=base)
|
||||
if isinstance(result, (unicode, str, bytes)):
|
||||
result = self._height
|
||||
if result < self._height:
|
||||
self._height = result
|
||||
|
||||
return self._height
|
||||
|
||||
@property
|
||||
|
|
|
|||
Loading…
Reference in a new issue