forked from LiveCarta/BookConverter
improve converting tag style values
This commit is contained in:
@@ -74,22 +74,20 @@ class StyleReader:
|
||||
def convert_size_number(size_number: str, unit_to_replace: str, multiplier: float) -> str:
|
||||
size_number = float(size_number.replace(unit_to_replace, "")) * multiplier
|
||||
return str(size_number) + "px"
|
||||
has_size = re.search(r"(\d+)([\w%]+)", size_value)
|
||||
values: List = size_value.split(" ")
|
||||
size_number: Union[str, float] = values[0]
|
||||
size_regexp = re.compile(
|
||||
r"(^-*(\d*\.*\d+)%$)|(^-*(\d*\.*\d+)em$)|(^-*(\d*\.*\d+)pt$)|(^-*(\d*\.*\d+)in$)")
|
||||
has_style_attrs = re.search(size_regexp, size_number)
|
||||
if has_style_attrs:
|
||||
if has_style_attrs.group(1):
|
||||
if has_size:
|
||||
size_number_idx = [i for i, value in enumerate(values) if re.search("(\d+)([\w%]+)", value)][0]
|
||||
if has_size.group(2) == "%":
|
||||
multiplier = 5.76 if is_indent else 0.16
|
||||
values[0] = convert_size_number(size_number, "%", multiplier)
|
||||
elif has_style_attrs.group(3):
|
||||
values[size_number_idx] = convert_size_number(values[size_number_idx], "%", multiplier)
|
||||
elif has_size.group(2) == "em":
|
||||
multiplier = 18 if is_indent else 16
|
||||
values[0] = convert_size_number(size_number, "em", multiplier)
|
||||
elif has_style_attrs.group(5):
|
||||
values[0] = convert_size_number(size_number, "pt", 4 / 3)
|
||||
elif has_style_attrs.group(7):
|
||||
values[0] = convert_size_number(size_number, "in", 96)
|
||||
values[size_number_idx] = convert_size_number(values[size_number_idx], "em", multiplier)
|
||||
elif has_size.group(2) == "pt":
|
||||
values[size_number_idx] = convert_size_number(values[size_number_idx], "pt", 4 / 3)
|
||||
elif has_size.group(2) == "in":
|
||||
values[size_number_idx] = convert_size_number(values[size_number_idx], "in", 96)
|
||||
size_value = " ".join(values)
|
||||
return size_value
|
||||
|
||||
|
||||
Reference in New Issue
Block a user