"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/reportlab/platypus/paragraph.py" between
reportlab-3.5.65.tar.gz and reportlab-3.5.66.tar.gz

About: ReportLab generates high-quality dynamic PDF documents/charts in real-time & high volumes from any data source (commercial version also available). f: office t: PDF report "data graphics" charts

paragraph.py  (reportlab-3.5.65):paragraph.py  (reportlab-3.5.66)
skipping to change at line 219 skipping to change at line 219
if simple: if simple:
#last one or no extra space so left align #last one or no extra space so left align
tx._textOut(text,1) tx._textOut(text,1)
else: else:
tx.setWordSpace(extraspace / float(nSpaces)) tx.setWordSpace(extraspace / float(nSpaces))
tx._textOut(text,1) tx._textOut(text,1)
tx.setWordSpace(0) tx.setWordSpace(0)
setXPos(tx,-offset) setXPos(tx,-offset)
return offset return offset
def _justifyDrawParaLineRTL( tx, offset, extraspace, words, last=0):
return (_rightDrawParaLine if last else _justifyDrawParaLine)(tx, offset, ex
traspace, words, last)
def imgVRange(h,va,fontSize): def imgVRange(h,va,fontSize):
'''return bottom,top offsets relative to baseline(0)''' '''return bottom,top offsets relative to baseline(0)'''
if va=='baseline': if va=='baseline':
iyo = 0 iyo = 0
elif va in ('text-top','top'): elif va in ('text-top','top'):
iyo = fontSize-h iyo = fontSize-h
elif va=='middle': elif va=='middle':
iyo = fontSize - (1.2*fontSize+h)*0.5 iyo = fontSize - (1.2*fontSize+h)*0.5
elif va in ('text-bottom','bottom'): elif va in ('text-bottom','bottom'):
iyo = fontSize - 1.2*fontSize iyo = fontSize - 1.2*fontSize
skipping to change at line 406 skipping to change at line 409
xs.backColor = None xs.backColor = None
elif f.backColor!=xs.backColor or xs.textColor!=xs.backColor: elif f.backColor!=xs.backColor or xs.textColor!=xs.backColor:
xs.backColors.append( (xs.backColor_x, end_x, xs.backColor) ) xs.backColors.append( (xs.backColor_x, end_x, xs.backColor) )
xs.backColor = bg xs.backColor = bg
xs.backColor_x = cur_x_s xs.backColor_x = cur_x_s
txtlen = tx._canvas.stringWidth(text, tx._fontname, tx._fontsize) txtlen = tx._canvas.stringWidth(text, tx._fontname, tx._fontsize)
cur_x += txtlen cur_x += txtlen
nSpaces += text.count(' ')+_nbspCount(text) nSpaces += text.count(' ')+_nbspCount(text)
cur_x_s = cur_x+(nSpaces-1)*ws cur_x_s = cur_x+(nSpaces-1)*ws
if last and pKind!='right' and xs.style.endDots: if last and xs.style.endDots:
_do_dots_frag(cur_x,cur_x_s,line.maxWidth,xs,tx) if xs.style.wordWrap!='RTL': #assume dots left --> right
if pKind!='right':
_do_dots_frag(cur_x,cur_x_s,line.maxWidth,xs,tx)
elif pKind!='left':
start = tx._x_offset
_do_dots_frag(start, start, x0 - start, xs, tx, left=False)
if LL: if LL:
for l in LL: for l in LL:
us_lines[l] = us_lines[l], cur_x_s us_lines[l] = us_lines[l], cur_x_s
if AL: if AL:
for l in AL: for l in AL:
links[l] = links[l], cur_x_s links[l] = links[l], cur_x_s
if xs.backColor: if xs.backColor:
xs.backColors.append( (xs.backColor_x, cur_x_s, xs.backColor) ) xs.backColors.append( (xs.backColor_x, cur_x_s, xs.backColor) )
if tx._x0!=x0: if tx._x0!=x0:
setXPos(tx,x0-tx._x0) setXPos(tx,x0-tx._x0)
def _do_dots_frag(cur_x, cur_x_s, maxWidth, xs, tx): def _do_dots_frag(cur_x, cur_x_s, maxWidth, xs, tx, left=True):
text,fontName,fontSize,textColor,backColor,dy = _getDotsInfo(xs.style) text,fontName,fontSize,textColor,backColor,dy = _getDotsInfo(xs.style)
txtlen = tx._canvas.stringWidth(text, fontName, fontSize) txtlen = tx._canvas.stringWidth(text, fontName, fontSize)
if cur_x_s+txtlen<=maxWidth: if cur_x_s+txtlen<=maxWidth:
if tx._fontname!=fontName or tx._fontsize!=fontSize: if tx._fontname!=fontName or tx._fontsize!=fontSize:
tx.setFont(fontName,fontSize) tx.setFont(fontName,fontSize)
maxWidth += getattr(tx,'_dotsOffsetX',tx._x0) if left: maxWidth += getattr(tx,'_dotsOffsetX',tx._x0)
tx.setTextOrigin(0,xs.cur_y+dy) tx.setTextOrigin(0,xs.cur_y+dy)
setXPos(tx,cur_x_s-cur_x) setXPos(tx,cur_x_s-cur_x)
n = int((maxWidth-cur_x_s)/txtlen) n = int((maxWidth-cur_x_s)/txtlen)
setXPos(tx,maxWidth - txtlen*n) setXPos(tx,maxWidth - txtlen*n)
if xs.textColor!=textColor: if xs.textColor!=textColor:
tx.setFillColor(textColor) tx.setFillColor(textColor)
if backColor: xs.backColors.append((cur_x,maxWidth,backColor)) if backColor: xs.backColors.append((cur_x,maxWidth,backColor))
tx._textOut(n*text,1) tx._textOut(n*text,1)
if dy: tx.setTextOrigin(tx._x0,xs.cur_y-dy) if dy: tx.setTextOrigin(tx._x0,xs.cur_y-dy)
def _leftDrawParaLineX( tx, offset, line, last=0): def _leftDrawParaLineX( tx, offset, line, last=0):
tx._x_offset = offset
setXPos(tx,offset) setXPos(tx,offset)
extraSpace = line.extraSpace extraSpace = line.extraSpace
simple = extraSpace>-1e-8 or getattr(line,'preformatted',False) simple = extraSpace>-1e-8 or getattr(line,'preformatted',False)
if not simple: if not simple:
nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1 nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1
simple = nSpaces<=0 simple = nSpaces<=0
if simple: if simple:
_putFragLine(offset, tx, line, last, 'left') _putFragLine(offset, tx, line, last, 'left')
else: else:
tx.setWordSpace(extraSpace / float(nSpaces)) tx.setWordSpace(extraSpace / float(nSpaces))
_putFragLine(offset, tx, line, last, 'left') _putFragLine(offset, tx, line, last, 'left')
tx.setWordSpace(0) tx.setWordSpace(0)
setXPos(tx,-offset) setXPos(tx,-offset)
def _centerDrawParaLineX( tx, offset, line, last=0): def _centerDrawParaLineX( tx, offset, line, last=0):
tx._x_offset = offset
tx._dotsOffsetX = offset + tx._x0 tx._dotsOffsetX = offset + tx._x0
try: try:
extraSpace = line.extraSpace extraSpace = line.extraSpace
simple = extraSpace>-1e-8 or getattr(line,'preformatted',False) simple = extraSpace>-1e-8 or getattr(line,'preformatted',False)
if not simple: if not simple:
nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1 nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1
simple = nSpaces<=0 simple = nSpaces<=0
if simple: if simple:
m = offset+0.5*line.extraSpace m = offset+0.5*line.extraSpace
setXPos(tx,m) setXPos(tx,m)
skipping to change at line 476 skipping to change at line 486
else: else:
m = offset m = offset
tx.setWordSpace(extraSpace / float(nSpaces)) tx.setWordSpace(extraSpace / float(nSpaces))
_putFragLine(m, tx, line, last, 'center') _putFragLine(m, tx, line, last, 'center')
tx.setWordSpace(0) tx.setWordSpace(0)
setXPos(tx,-m) setXPos(tx,-m)
finally: finally:
del tx._dotsOffsetX del tx._dotsOffsetX
def _rightDrawParaLineX( tx, offset, line, last=0): def _rightDrawParaLineX( tx, offset, line, last=0):
tx._x_offset = offset
extraSpace = line.extraSpace extraSpace = line.extraSpace
simple = extraSpace>-1e-8 or getattr(line,'preformatted',False) simple = extraSpace>-1e-8 or getattr(line,'preformatted',False)
if not simple: if not simple:
nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1 nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1
simple = nSpaces<=0 simple = nSpaces<=0
if simple: if simple:
m = offset+line.extraSpace m = offset+line.extraSpace
setXPos(tx,m) setXPos(tx,m)
_putFragLine(m,tx, line, last, 'right') _putFragLine(m,tx, line, last, 'right')
else: else:
m = offset m = offset
tx.setWordSpace(extraSpace / float(nSpaces)) tx.setWordSpace(extraSpace / float(nSpaces))
_putFragLine(m, tx, line, last, 'right') _putFragLine(m, tx, line, last, 'right')
tx.setWordSpace(0) tx.setWordSpace(0)
setXPos(tx,-m) setXPos(tx,-m)
def _justifyDrawParaLineX( tx, offset, line, last=0): def _justifyDrawParaLineX( tx, offset, line, last=0):
tx._x_offset = offset
setXPos(tx,offset) setXPos(tx,offset)
extraSpace = line.extraSpace extraSpace = line.extraSpace
simple = last or abs(extraSpace)<=1e-8 or line.lineBreak simple = last or abs(extraSpace)<=1e-8 or line.lineBreak
if not simple: if not simple:
nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1 nSpaces = line.wordCount+sum([_nbspCount(w.text) for w in line.words if not hasattr(w,'cbDefn')])-1
simple = nSpaces<=0 simple = nSpaces<=0
if not simple: if not simple:
tx.setWordSpace(extraSpace / float(nSpaces)) tx.setWordSpace(extraSpace / float(nSpaces))
_putFragLine(offset, tx, line, last, 'justify') _putFragLine(offset, tx, line, last, 'justify')
tx.setWordSpace(0) tx.setWordSpace(0)
else: else:
_putFragLine(offset, tx, line, last, 'justify') #no space modification _putFragLine(offset, tx, line, last, 'justify') #no space modification
setXPos(tx,-offset) setXPos(tx,-offset)
def _justifyDrawParaLineXRTL( tx, offset, line, last=0):
return (_rightDrawParaLineX if last else _justifyDrawParaLineX)( tx, offset,
line, last)
def _trailingSpaceLength(text, tx): def _trailingSpaceLength(text, tx):
ws = _wsc_end_search(text) ws = _wsc_end_search(text)
return tx._canvas.stringWidth(ws.group(), tx._fontname, tx._fontsize) if ws else 0 return tx._canvas.stringWidth(ws.group(), tx._fontname, tx._fontsize) if ws else 0
class _HSFrag(list): class _HSFrag(list):
'''a frag that's followed by a space''' '''a frag that's followed by a space'''
pass pass
class _InjectedFrag(list): class _InjectedFrag(list):
'''a frag that's injected in breaklines and must be removed on reprocessing' '' '''a frag that's injected in breaklines and must be removed on reprocessing' ''
skipping to change at line 1454 skipping to change at line 1469
def _do_under_line(i, x1, ws, tx, us_lines): def _do_under_line(i, x1, ws, tx, us_lines):
xs = tx.XtraState xs = tx.XtraState
style = xs.style style = xs.style
y0 = xs.cur_y - i*style.leading y0 = xs.cur_y - i*style.leading
f = xs.f f = xs.f
fs = f.fontSize fs = f.fontSize
tc = f.textColor tc = f.textColor
values = dict(L=fs,F=fs,f=fs) values = dict(L=fs,F=fs,f=fs)
dw = tx._defaultLineWidth dw = tx._defaultLineWidth
x2 = x1 + tx._canvas.stringWidth(' '.join(tx.XtraState.lines[i][1]), tx._fon tname, fs) x2 = x1 + tx._canvas.stringWidth(' '.join(tx.XtraState.lines[i][1]), tx._fon tname, fs) + ws
for n,k,c,w,o,r,m,g in us_lines: for n,k,c,w,o,r,m,g in us_lines:
underline = k=='underline' underline = k=='underline'
lw = _usConv(w,values,default=tx._defaultLineWidth) lw = _usConv(w,values,default=tx._defaultLineWidth)
lg = _usConv(g,values,default=1) lg = _usConv(g,values,default=1)
dy = lg+lw dy = lg+lw
if not underline: dy = -dy if not underline: dy = -dy
y = y0 + r + _usConv(('-0.125*L' if underline else '0.25*L') if o=='' el se o,values) y = y0 + r + _usConv(('-0.125*L' if underline else '0.25*L') if o=='' el se o,values)
if not c: c = tc if not c: c = tc
while m>0: while m>0:
tx._do_line(x1, y, x2, y, lw, c) tx._do_line(x1, y, x2, y, lw, c)
skipping to change at line 1706 skipping to change at line 1721
lineStartPos = i lineStartPos = i
widthUsed = 0 widthUsed = 0
#any characters left? #any characters left?
if widthUsed > 0: if widthUsed > 0:
lines.append(makeCJKParaLine(U[lineStartPos:],maxWidth,widthUsed,maxWidt h-widthUsed,False,calcBounds)) lines.append(makeCJKParaLine(U[lineStartPos:],maxWidth,widthUsed,maxWidt h-widthUsed,False,calcBounds))
return ParaLines(kind=1,lines=lines) return ParaLines(kind=1,lines=lines)
def _setTXLineProps(tx, canvas, style):
tx._defaultLineWidth = canvas._lineWidth
tx._underlineColor = getattr(style,'underlineColor','')
tx._underlineWidth = getattr(style,'underlineWidth','')
tx._underlineOffset = getattr(style,'underlineOffset','') or '-0.125f'
tx._strikeColor = getattr(style,'strikeColor','')
tx._strikeWidth = getattr(style,'strikeWidth','')
tx._strikeOffset = getattr(style,'strikeOffset','') or '0.25f'
class Paragraph(Flowable): class Paragraph(Flowable):
""" Paragraph(text, style, bulletText=None, caseSensitive=1) """ Paragraph(text, style, bulletText=None, caseSensitive=1)
text a string of stuff to go into the paragraph. text a string of stuff to go into the paragraph.
style is a style definition as in reportlab.lib.styles. style is a style definition as in reportlab.lib.styles.
bulletText is an optional bullet defintion. bulletText is an optional bullet defintion.
caseSensitive set this to 0 if you want the markup tags and their attrib utes to be case-insensitive. caseSensitive set this to 0 if you want the markup tags and their attrib utes to be case-insensitive.
This class is a flowable that can format a block of text This class is a flowable that can format a block of text
into a paragraph with a given style. into a paragraph with a given style.
skipping to change at line 2483 skipping to change at line 2507
if nLines > 0: if nLines > 0:
_offsets = getattr(self,'_offsets',[0]) _offsets = getattr(self,'_offsets',[0])
_offsets += (nLines-len(_offsets))*[_offsets[-1]] _offsets += (nLines-len(_offsets))*[_offsets[-1]]
canvas.saveState() canvas.saveState()
#canvas.addLiteral('%% %s.drawPara' % _className(self)) #canvas.addLiteral('%% %s.drawPara' % _className(self))
alignment = style.alignment alignment = style.alignment
offset = style.firstLineIndent+_offsets[0] offset = style.firstLineIndent+_offsets[0]
lim = nLines-1 lim = nLines-1
noJustifyLast = not getattr(self,'_JustifyLast',False) noJustifyLast = not getattr(self,'_JustifyLast',False)
jllwc = style.justifyLastLine jllwc = style.justifyLastLine
isRTL = style.wordWrap=='RTL'
bRTL = isRTL and self._wrapWidths or False
if blPara.kind==0: if blPara.kind==0:
if alignment == TA_LEFT: if alignment == TA_LEFT:
dpl = _leftDrawParaLine dpl = _leftDrawParaLine
elif alignment == TA_CENTER: elif alignment == TA_CENTER:
dpl = _centerDrawParaLine dpl = _centerDrawParaLine
elif self.style.alignment == TA_RIGHT: elif alignment == TA_RIGHT:
dpl = _rightDrawParaLine dpl = _rightDrawParaLine
elif self.style.alignment == TA_JUSTIFY: elif alignment == TA_JUSTIFY:
dpl = _justifyDrawParaLine dpl = _justifyDrawParaLineRTL if isRTL else _justifyDrawPara
Line
f = blPara f = blPara
if paraFontSizeHeightOffset: if paraFontSizeHeightOffset:
cur_y = self.height - f.fontSize cur_y = self.height - f.fontSize
else: else:
cur_y = self.height - getattr(f,'ascent',f.fontSize) cur_y = self.height - getattr(f,'ascent',f.fontSize)
if bulletText: if bulletText:
offset = _drawBullet(canvas,offset,cur_y,bulletText,style,rt l=style.wordWrap=='RTL' and self._wrapWidths or False) offset = _drawBullet(canvas,offset,cur_y,bulletText,style,rt l=bRTL)
#set up the font etc. #set up the font etc.
canvas.setFillColor(f.textColor) canvas.setFillColor(f.textColor)
tx = self.beginText(cur_x, cur_y) tx = self.beginText(cur_x, cur_y)
tx.preformatted = 'preformatted' in self.__class__.__name__.lowe r() tx.preformatted = 'preformatted' in self.__class__.__name__.lowe r()
if autoLeading=='max': if autoLeading=='max':
leading = max(leading,blPara.ascent-blPara.descent) leading = max(leading,blPara.ascent-blPara.descent)
elif autoLeading=='min': elif autoLeading=='min':
leading = blPara.ascent-blPara.descent leading = blPara.ascent-blPara.descent
skipping to change at line 2522 skipping to change at line 2548
tx.direction = self.style.wordWrap tx.direction = self.style.wordWrap
#now the font for the rest of the paragraph #now the font for the rest of the paragraph
tx.setFont(f.fontName, f.fontSize, leading) tx.setFont(f.fontName, f.fontSize, leading)
ws = lines[0][0] ws = lines[0][0]
words = lines[0][1] words = lines[0][1]
lastLine = noJustifyLast and nLines==1 lastLine = noJustifyLast and nLines==1
if lastLine and jllwc and len(words)>jllwc: if lastLine and jllwc and len(words)>jllwc:
lastLine=False lastLine=False
t_off = dpl( tx, offset, ws, words, lastLine) t_off = dpl( tx, offset, ws, words, lastLine)
if f.us_lines or f.link or style.endDots: if f.us_lines or f.link:# or style.endDots:
tx._do_line = MethodType(_do_line,tx) tx._do_line = MethodType(_do_line,tx)
tx.xs = xs = tx.XtraState = ABag() tx.xs = xs = tx.XtraState = ABag()
tx._defaultLineWidth = canvas._lineWidth _setTXLineProps(tx, canvas, style)
xs.cur_y = cur_y xs.cur_y = cur_y
xs.f = f xs.f = f
xs.style = style xs.style = style
xs.lines = lines xs.lines = lines
xs.link=f.link xs.link=f.link
xs.textColor = f.textColor xs.textColor = f.textColor
xs.backColors = [] xs.backColors = []
dx = t_off+leftIndent dx = t_off+leftIndent
if dpl!=_justifyDrawParaLine: ws = 0 if alignment!=TA_JUSTIFY or lastLine: ws = 0
if f.us_lines: if f.us_lines:
_do_under_line(0, dx, ws, tx, f.us_lines) _do_under_line(0, dx, ws, tx, f.us_lines)
if f.link: _do_link_line(0, dx, ws, tx) if f.link: _do_link_line(0, dx, ws, tx)
if lastLine and style.endDots and dpl!=_rightDrawParaLine: _ do_dots(0, dx, ws, xs, tx, dpl) #if lastLine and style.endDots and dpl!=_rightDrawParaLine: _do_dots(0, dx, ws, xs, tx, dpl)
#now the middle of the paragraph, aligned with the left marg in which is our origin. #now the middle of the paragraph, aligned with the left marg in which is our origin.
for i in xrange(1, nLines): for i in xrange(1, nLines):
ws = lines[i][0] ws = lines[i][0]
words = lines[i][1] words = lines[i][1]
lastLine = noJustifyLast and i==lim lastLine = noJustifyLast and i==lim
if lastLine and jllwc and len(words)>jllwc: if lastLine and jllwc and len(words)>jllwc:
lastLine=False lastLine=False
t_off = dpl( tx, _offsets[i], ws, words, lastLine) t_off = dpl( tx, _offsets[i], ws, words, lastLine)
dx = t_off+leftIndent dx = t_off+leftIndent
if dpl!=_justifyDrawParaLine: ws = 0 if alignment!=TA_JUSTIFY or lastLine: ws = 0
if f.us_lines: if f.us_lines:
_do_under_line(i, t_off, ws, tx, f.us_lines) _do_under_line(i, t_off, ws, tx, f.us_lines)
if f.link: _do_link_line(i, dx, ws, tx) if f.link: _do_link_line(i, dx, ws, tx)
if lastLine and style.endDots and dpl!=_rightDrawParaLin e: _do_dots(i, dx, ws, xs, tx, dpl) #if lastLine and style.endDots and dpl!=_rightDrawParaLi ne: _do_dots(i, dx, ws, xs, tx, dpl)
else: else:
for i in xrange(1, nLines): for i in xrange(1, nLines):
words = lines[i][1] words = lines[i][1]
lastLine = noJustifyLast and i==lim lastLine = noJustifyLast and i==lim
if lastLine and jllwc and len(words)>jllwc: if lastLine and jllwc and len(words)>jllwc:
lastLine=False lastLine=False
dpl( tx, _offsets[i], lines[i][0], words, lastLine) dpl( tx, _offsets[i], lines[i][0], words, lastLine)
else: else:
if self.style.wordWrap == 'RTL': if isRTL:
for line in lines: for line in lines:
line.words = line.words[::-1] line.words = line.words[::-1]
f = lines[0] f = lines[0]
if paraFontSizeHeightOffset: if paraFontSizeHeightOffset:
cur_y = self.height - f.fontSize cur_y = self.height - f.fontSize
else: else:
cur_y = self.height - getattr(f,'ascent',f.fontSize) cur_y = self.height - getattr(f,'ascent',f.fontSize)
# default? # default?
dpl = _leftDrawParaLineX dpl = _leftDrawParaLineX
if bulletText: if bulletText:
oo = offset oo = offset
offset = _drawBullet(canvas,offset,cur_y,bulletText,style, r tl=style.wordWrap=='RTL' and self._wrapWidths or False) offset = _drawBullet(canvas,offset,cur_y,bulletText,style, r tl=bRTL)
if alignment == TA_LEFT: if alignment == TA_LEFT:
dpl = _leftDrawParaLineX dpl = _leftDrawParaLineX
elif alignment == TA_CENTER: elif alignment == TA_CENTER:
dpl = _centerDrawParaLineX dpl = _centerDrawParaLineX
elif self.style.alignment == TA_RIGHT: elif alignment == TA_RIGHT:
dpl = _rightDrawParaLineX dpl = _rightDrawParaLineX
elif self.style.alignment == TA_JUSTIFY: elif alignment == TA_JUSTIFY:
dpl = _justifyDrawParaLineX dpl = _justifyDrawParaLineXRTL if isRTL else _justifyDrawPar
aLineX
else: else:
raise ValueError("bad align %s" % repr(alignment)) raise ValueError("bad align %s" % repr(alignment))
#set up the font etc. #set up the font etc.
tx = self.beginText(cur_x, cur_y) tx = self.beginText(cur_x, cur_y)
tx.preformatted = 'preformatted' in self.__class__.__name__.lowe r() tx.preformatted = 'preformatted' in self.__class__.__name__.lowe r()
tx._defaultLineWidth = canvas._lineWidth _setTXLineProps(tx, canvas, style)
tx._underlineWidth = getattr(style,'underlineWidth','')
tx._underlineOffset = getattr(style,'underlineOffset','') or '-0
.125f'
tx._strikeWidth = getattr(style,'strikeWidth','')
tx._strikeOffset = getattr(style,'strikeOffset','') or '0.25f'
tx._do_line = MethodType(_do_line,tx) tx._do_line = MethodType(_do_line,tx)
# set the paragraph direction # set the paragraph direction
tx.direction = self.style.wordWrap tx.direction = self.style.wordWrap
xs = tx.XtraState=ABag() xs = tx.XtraState=ABag()
xs.textColor=None xs.textColor=None
xs.backColor=None xs.backColor=None
xs.rise=0 xs.rise=0
xs.backColors=[] xs.backColors=[]
xs.us_lines = {} xs.us_lines = {}
 End of changes. 26 change blocks. 
26 lines changed or deleted 51 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)