src/reportlab/graphics/renderPDF.py
changeset 4635 b60508f2fd12
parent 4551 d357e2acc856
child 4668 f8d6dc8f07fc
--- a/src/reportlab/graphics/renderPDF.py	Thu Jan 14 14:38:04 2021 +0000
+++ b/src/reportlab/graphics/renderPDF.py	Fri Jan 22 12:32:35 2021 +0000
@@ -155,7 +155,11 @@
                             )
 
     def drawString(self, stringObj):
-        if self._fill:
+        textRenderMode = getattr(stringObj,'textRenderMode',0)
+        needFill = textRenderMode in (0,2,4,6) 
+        needStroke = textRenderMode in (1,2,5,6) 
+
+        if (self._fill and needFill) or (self._stroke and needStroke):
             S = self._tracker.getState()
             text_anchor, x, y, text, enc = S['textAnchor'], stringObj.x,stringObj.y,stringObj.text, stringObj.encoding
             if not text_anchor in ['start','inherited']:
@@ -169,9 +173,7 @@
                     x -= numericXShift(text_anchor,text,textLen,font,font_size,enc)
                 else:
                     raise ValueError('bad value for textAnchor '+str(text_anchor))
-            t = self._canvas.beginText(x,y)
-            t.textLine(text)
-            self._canvas.drawText(t)
+            self._canvas.drawString(x, y, text, mode=textRenderMode or None)
 
     def drawPath(self, path):
         from reportlab.graphics.shapes import _renderPath