Code cleanup.
parent
0a4bc9dee9
commit
acad011e3f
|
@ -202,7 +202,8 @@ class LTAnno(LTItem, LTText):
|
||||||
##
|
##
|
||||||
class LTChar(LTComponent, LTText):
|
class LTChar(LTComponent, LTText):
|
||||||
|
|
||||||
def __init__(self, matrix, font, fontsize, scaling, rise, text, textwidth, textdisp):
|
def __init__(self, matrix, font, fontsize, scaling, rise,
|
||||||
|
text, textwidth, textdisp):
|
||||||
LTText.__init__(self)
|
LTText.__init__(self)
|
||||||
self._text = text
|
self._text = text
|
||||||
self.matrix = matrix
|
self.matrix = matrix
|
||||||
|
@ -478,52 +479,57 @@ class LTLayoutContainer(LTContainer):
|
||||||
line = None
|
line = None
|
||||||
for obj1 in objs:
|
for obj1 in objs:
|
||||||
if obj0 is not None:
|
if obj0 is not None:
|
||||||
k = 0
|
# halign: obj0 and obj1 is horizontally aligned.
|
||||||
if (obj0.is_compatible(obj1) and obj0.is_voverlap(obj1) and
|
#
|
||||||
min(obj0.height, obj1.height) * laparams.line_overlap < obj0.voverlap(obj1) and
|
# +------+ - - -
|
||||||
obj0.hdistance(obj1) < max(obj0.width, obj1.width) * laparams.char_margin):
|
# | obj0 | - - +------+ -
|
||||||
# obj0 and obj1 is horizontally aligned:
|
# | | | obj1 | | (line_overlap)
|
||||||
#
|
# +------+ - - | | -
|
||||||
# +------+ - - -
|
# - - - +------+
|
||||||
# | obj0 | - - +------+ -
|
#
|
||||||
# | | | obj1 | | (line_overlap)
|
# |<--->|
|
||||||
# +------+ - - | | -
|
# (char_margin)
|
||||||
# - - - +------+
|
halign = (obj0.is_compatible(obj1) and
|
||||||
#
|
obj0.is_voverlap(obj1) and
|
||||||
# |<--->|
|
(min(obj0.height, obj1.height) * laparams.line_overlap <
|
||||||
# (char_margin)
|
obj0.voverlap(obj1)) and
|
||||||
k |= 1
|
(obj0.hdistance(obj1) <
|
||||||
if (laparams.detect_vertical and
|
max(obj0.width, obj1.width) * laparams.char_margin))
|
||||||
obj0.is_compatible(obj1) and obj0.is_hoverlap(obj1) and
|
|
||||||
min(obj0.width, obj1.width) * laparams.line_overlap < obj0.hoverlap(obj1) and
|
# valign: obj0 and obj1 is vertically aligned.
|
||||||
obj0.vdistance(obj1) < max(obj0.height, obj1.height) * laparams.char_margin):
|
#
|
||||||
# obj0 and obj1 is vertically aligned:
|
# +------+
|
||||||
#
|
# | obj0 |
|
||||||
# +------+
|
# | |
|
||||||
# | obj0 |
|
# +------+ - - -
|
||||||
# | |
|
# | | | (char_margin)
|
||||||
# +------+ - - -
|
# +------+ - -
|
||||||
# | | | (char_margin)
|
# | obj1 |
|
||||||
# +------+ - -
|
# | |
|
||||||
# | obj1 |
|
# +------+
|
||||||
# | |
|
#
|
||||||
# +------+
|
# |<-->|
|
||||||
#
|
# (line_overlap)
|
||||||
# |<-->|
|
valign = (laparams.detect_vertical and
|
||||||
# (line_overlap)
|
obj0.is_compatible(obj1) and
|
||||||
k |= 2
|
obj0.is_hoverlap(obj1) and
|
||||||
if ((k & 1 and isinstance(line, LTTextLineHorizontal)) or
|
(min(obj0.width, obj1.width) * laparams.line_overlap <
|
||||||
(k & 2 and isinstance(line, LTTextLineVertical))):
|
obj0.hoverlap(obj1)) and
|
||||||
|
(obj0.vdistance(obj1) <
|
||||||
|
max(obj0.height, obj1.height) * laparams.char_margin))
|
||||||
|
|
||||||
|
if ((halign and isinstance(line, LTTextLineHorizontal)) or
|
||||||
|
(valign and isinstance(line, LTTextLineVertical))):
|
||||||
line.add(obj1)
|
line.add(obj1)
|
||||||
elif line is not None:
|
elif line is not None:
|
||||||
yield line
|
yield line
|
||||||
line = None
|
line = None
|
||||||
else:
|
else:
|
||||||
if k == 2:
|
if valign and not halign:
|
||||||
line = LTTextLineVertical(laparams.word_margin)
|
line = LTTextLineVertical(laparams.word_margin)
|
||||||
line.add(obj0)
|
line.add(obj0)
|
||||||
line.add(obj1)
|
line.add(obj1)
|
||||||
elif k == 1:
|
elif halign and not valign:
|
||||||
line = LTTextLineHorizontal(laparams.word_margin)
|
line = LTTextLineHorizontal(laparams.word_margin)
|
||||||
line.add(obj0)
|
line.add(obj0)
|
||||||
line.add(obj1)
|
line.add(obj1)
|
||||||
|
|
Loading…
Reference in New Issue