fixed: HTMLConverter.
parent
a1cae26a74
commit
02ad086f6a
|
@ -204,7 +204,7 @@ class HTMLConverter(PDFConverter):
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, rsrcmgr, outfp, codec='utf-8', pageno=1, laparams=None,
|
def __init__(self, rsrcmgr, outfp, codec='utf-8', pageno=1, laparams=None,
|
||||||
scale=1, fontscale=0.7, layoutmode='normal', showpageno=True,
|
scale=1, fontscale=1.0, layoutmode='normal', showpageno=True,
|
||||||
pagemargin=50, imagewriter=None,
|
pagemargin=50, imagewriter=None,
|
||||||
rect_colors={'curve':'black', 'page':'gray'},
|
rect_colors={'curve':'black', 'page':'gray'},
|
||||||
text_colors={'char':'black'}):
|
text_colors={'char':'black'}):
|
||||||
|
@ -279,7 +279,7 @@ class HTMLConverter(PDFConverter):
|
||||||
self.write('</span>\n')
|
self.write('</span>\n')
|
||||||
return
|
return
|
||||||
|
|
||||||
def begin_textbox(self, color, borderwidth, x, y, w, h, writing_mode):
|
def begin_div(self, color, borderwidth, x, y, w, h, writing_mode=False):
|
||||||
self._fontstack.append(self._font)
|
self._fontstack.append(self._font)
|
||||||
self._font = None
|
self._font = None
|
||||||
self.write('<div style="position:absolute; border: %s %dpx solid; writing-mode:%s; '
|
self.write('<div style="position:absolute; border: %s %dpx solid; writing-mode:%s; '
|
||||||
|
@ -289,6 +289,13 @@ class HTMLConverter(PDFConverter):
|
||||||
w*self.scale, h*self.scale))
|
w*self.scale, h*self.scale))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def end_div(self, color):
|
||||||
|
if self._font is not None:
|
||||||
|
self.write('</span>')
|
||||||
|
self._font = self._fontstack.pop()
|
||||||
|
self.write('</div>')
|
||||||
|
return
|
||||||
|
|
||||||
def put_text(self, text, fontname, fontsize):
|
def put_text(self, text, fontname, fontsize):
|
||||||
font = (fontname, fontsize)
|
font = (fontname, fontsize)
|
||||||
if font != self._font:
|
if font != self._font:
|
||||||
|
@ -304,13 +311,6 @@ class HTMLConverter(PDFConverter):
|
||||||
self.write('<br>')
|
self.write('<br>')
|
||||||
return
|
return
|
||||||
|
|
||||||
def end_textbox(self, color):
|
|
||||||
if self._font is not None:
|
|
||||||
self.write('</span>')
|
|
||||||
self._font = self._fontstack.pop()
|
|
||||||
self.write('</div>')
|
|
||||||
return
|
|
||||||
|
|
||||||
def receive_layout(self, ltpage):
|
def receive_layout(self, ltpage):
|
||||||
def show_group(item):
|
def show_group(item):
|
||||||
if isinstance(item, LTTextGroup):
|
if isinstance(item, LTTextGroup):
|
||||||
|
@ -334,9 +334,10 @@ class HTMLConverter(PDFConverter):
|
||||||
elif isinstance(item, LTCurve):
|
elif isinstance(item, LTCurve):
|
||||||
self.place_border('curve', 1, item)
|
self.place_border('curve', 1, item)
|
||||||
elif isinstance(item, LTFigure):
|
elif isinstance(item, LTFigure):
|
||||||
self.place_border('figure', 1, item)
|
self.begin_div('figure', 1, item.x0, item.y1, item.width, item.height)
|
||||||
for child in item:
|
for child in item:
|
||||||
render(child)
|
render(child)
|
||||||
|
self.end_div('figure')
|
||||||
elif isinstance(item, LTImage):
|
elif isinstance(item, LTImage):
|
||||||
self.place_image(item, 1, item.x0, item.y1, item.width, item.height)
|
self.place_image(item, 1, item.x0, item.y1, item.width, item.height)
|
||||||
else:
|
else:
|
||||||
|
@ -360,11 +361,11 @@ class HTMLConverter(PDFConverter):
|
||||||
if self.layoutmode != 'loose':
|
if self.layoutmode != 'loose':
|
||||||
self.put_newline()
|
self.put_newline()
|
||||||
elif isinstance(item, LTTextBox):
|
elif isinstance(item, LTTextBox):
|
||||||
self.begin_textbox('textbox', 1, item.x0, item.y1, item.width, item.height,
|
self.begin_div('textbox', 1, item.x0, item.y1, item.width, item.height,
|
||||||
item.get_writing_mode())
|
item.get_writing_mode())
|
||||||
for child in item:
|
for child in item:
|
||||||
render(child)
|
render(child)
|
||||||
self.end_textbox('textbox')
|
self.end_div('textbox')
|
||||||
elif isinstance(item, LTChar):
|
elif isinstance(item, LTChar):
|
||||||
self.put_text(item.get_text(), item.fontname, item.size)
|
self.put_text(item.get_text(), item.fontname, item.size)
|
||||||
elif isinstance(item, LTText):
|
elif isinstance(item, LTText):
|
||||||
|
|
Loading…
Reference in New Issue