Beispiel #1
0
 def __init__(self, layout, document, colors_iter, background_iter):
     self.colors_iter = colors_iter
     underline_iter = document.get_style_runs('underline')
     self.decoration_iter = runlist.ZipRunIterator(
         (background_iter, underline_iter))
     self.baseline_iter = runlist.FilteredRunIterator(
         document.get_style_runs('baseline'),
         lambda value: value is not None, 0)
Beispiel #2
0
 def _get_glyphs(self):
     glyphs = []
     runs = runlist.ZipRunIterator(
         (self._document.get_font_runs(dpi=self._dpi),
          self._document.get_element_runs()))
     text = self._document.text
     for start, end, (font, element) in runs.ranges(0, len(text)):
         if element:
             ee = _InlineElementBox(element)
             ee.char_width = -1
             glyphs.append(ee)
         else:
             f_glyphs = font.get_glyphs(text[start:end])
             for i in range(start, end):
                 f_glyphs[i - start].char_width = char_width(text[i])
             glyphs.extend(f_glyphs)
     return glyphs
Beispiel #3
0
 def __init__(self, font_names, font_sizes, bolds, italics, dpi):
     self.zip_iter = runlist.ZipRunIterator(
         (font_names, font_sizes, bolds, italics))
     self.dpi = dpi