Prevent crash with empty layout box.

pull/1/head
Yusuke Shinyama 2013-10-09 22:13:22 +09:00
parent 87143cb36f
commit eabe72ee63
1 changed files with 10 additions and 7 deletions

View File

@ -556,10 +556,12 @@ class LTLayoutContainer(LTContainer):
box = boxes[line] box = boxes[line]
if box in done: continue if box in done: continue
done.add(box) done.add(box)
yield box if not box.is_empty():
yield box
return return
def group_textboxes(self, laparams, boxes): def group_textboxes(self, laparams, boxes):
assert boxes
def dist(obj1, obj2): def dist(obj1, obj2):
"""A distance function between two TextBoxes. """A distance function between two TextBoxes.
@ -632,12 +634,13 @@ class LTLayoutContainer(LTContainer):
obj.analyze(laparams) obj.analyze(laparams)
textboxes = list(self.get_textboxes(laparams, textlines)) textboxes = list(self.get_textboxes(laparams, textlines))
assert len(textlines) == sum( len(box._objs) for box in textboxes ) assert len(textlines) == sum( len(box._objs) for box in textboxes )
self.groups = self.group_textboxes(laparams, textboxes) if textboxes:
assigner = IndexAssigner() self.groups = self.group_textboxes(laparams, textboxes)
for group in self.groups: assigner = IndexAssigner()
group.analyze(laparams) for group in self.groups:
assigner.run(group) group.analyze(laparams)
textboxes.sort(key=lambda box:box.index) assigner.run(group)
textboxes.sort(key=lambda box:box.index)
self._objs = textboxes + otherobjs + empties self._objs = textboxes + otherobjs + empties
return return