DOCX Output: Handle length and percentage values for vertical-align in the input document. Fixes #1480300 [CSS "vertical-align: 33%" NOT supported in ePub -> DocX Conversion](https://bugs.launchpad.net/calibre/+bug/1480300)

This commit is contained in:
Kovid Goyal 2015-08-03 08:59:21 +05:30
parent 560ed1c480
commit 78a269d983
2 changed files with 4 additions and 1 deletions

View File

@ -220,7 +220,7 @@ class TextStyle(DOCXStyle):
self.spacing = None self.spacing = None
va = css.first_vertical_align va = css.first_vertical_align
if isinstance(va, (int, float)): if isinstance(va, (int, float)):
self.vertical_align = str(int(self.vertical_align * 2)) self.vertical_align = str(int(va * 2))
else: else:
val = { val = {
'top':'superscript', 'text-top':'superscript', 'sup':'superscript', 'super':'superscript', 'top':'superscript', 'text-top':'superscript', 'sup':'superscript', 'super':'superscript',

View File

@ -701,6 +701,9 @@ class Style(object):
approximation of considering the first non-default vertical-align ''' approximation of considering the first non-default vertical-align '''
val = self['vertical-align'] val = self['vertical-align']
if val != 'baseline': if val != 'baseline':
raw_val = self._get('vertical-align')
if '%' in raw_val:
val = self._unit_convert(raw_val, base=self['line-height'])
return val return val
parent = self._get_parent() parent = self._get_parent()
if parent is not None and 'inline' in parent['display']: if parent is not None and 'inline' in parent['display']: