mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
This commit is contained in:
parent
40e6f28b4d
commit
9187c19baf
@ -26,6 +26,26 @@ PDFTOXML = 'pdftoxml.exe'
|
|||||||
if isosx and hasattr(sys, 'frameworks_dir'):
|
if isosx and hasattr(sys, 'frameworks_dir'):
|
||||||
PDFTOXML = os.path.join(getattr(sys, 'frameworks_dir'), PDFTOXML)
|
PDFTOXML = os.path.join(getattr(sys, 'frameworks_dir'), PDFTOXML)
|
||||||
|
|
||||||
|
class StyleContainer(object):
|
||||||
|
|
||||||
|
def set_style(self, iterator):
|
||||||
|
styles = set([])
|
||||||
|
for tok in iterator:
|
||||||
|
if hasattr(tok, 'style'):
|
||||||
|
styles.add(tok.style)
|
||||||
|
counts = [0*i for i in range(len(styles))]
|
||||||
|
for i in range(len(styles)):
|
||||||
|
counts[i] = sum([1 for j in self if j.style == styles[i]])
|
||||||
|
max = max(counts)
|
||||||
|
for i in range(len(counts)):
|
||||||
|
if counts[i] == max:
|
||||||
|
break
|
||||||
|
self.style = styles[i]
|
||||||
|
for obj in iterator:
|
||||||
|
if obj.style == self.style:
|
||||||
|
obj.style = None
|
||||||
|
|
||||||
|
|
||||||
class Page(object):
|
class Page(object):
|
||||||
|
|
||||||
def __init__(self, attrs):
|
def __init__(self, attrs):
|
||||||
@ -78,7 +98,7 @@ class Page(object):
|
|||||||
self.page_break_after = max < 0.8*self.height
|
self.page_break_after = max < 0.8*self.height
|
||||||
|
|
||||||
|
|
||||||
class Group(object, StyleContainer):
|
class Group(StyleContainer):
|
||||||
|
|
||||||
def __init__(self, lines):
|
def __init__(self, lines):
|
||||||
self.lines = lines
|
self.lines = lines
|
||||||
@ -150,25 +170,6 @@ class Text(object):
|
|||||||
return ' '.join(res)
|
return ' '.join(res)
|
||||||
|
|
||||||
|
|
||||||
class StyleContainer(object):
|
|
||||||
|
|
||||||
def set_style(self, iterator):
|
|
||||||
styles = set([])
|
|
||||||
for tok in iterator:
|
|
||||||
if hasattr(tok, 'style'):
|
|
||||||
styles.add(tok.style)
|
|
||||||
counts = [0*i for i in range(len(styles))]
|
|
||||||
for i in range(len(styles)):
|
|
||||||
counts[i] = sum([1 for j in self if j.style == styles[i]])
|
|
||||||
max = max(counts)
|
|
||||||
for i in range(len(counts)):
|
|
||||||
if counts[i] == max:
|
|
||||||
break
|
|
||||||
self.style = styles[i]
|
|
||||||
for obj in iterator:
|
|
||||||
if obj.style == self.style:
|
|
||||||
obj.style = None
|
|
||||||
|
|
||||||
class Line(list, StyleContainer):
|
class Line(list, StyleContainer):
|
||||||
|
|
||||||
def calculate_geometry(self):
|
def calculate_geometry(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user