Public bug reported:
Since the `gsfonts` dependency was removed in bug #1862641, some reportlab functionalities are failing. It can be reproduced with a simple example. First, ensure that `gsfonts` package is not installed. In python3: ``` from reportlab.graphics.barcode import createBarcodeDrawing barcode = createBarcodeDrawing('EAN13', value='1234') barcode.asString('png') ``` This leads to the following traceback: ``` Warn: Can't find .pfb for face 'Times-Roman' Traceback (most recent call last): File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 242, in _setFont gs.setFont(fontName,fontSize) ValueError: _renderPM.gstate_setFont: Can't find font! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 248, in _setFont _renderPM.makeT1Font(fontName,f.face.findT1File(),f.encoding.vector,open_and_read) TypeError: makeT1Font() argument 2 must be str, not None During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3/dist-packages/reportlab/graphics/shapes.py", line 854, in asString return renderPM.drawToString(self, fmt=format,showBoundary=getattr(self,'showBorder', File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 685, in drawToString drawToFile(d,s,fmt=fmt, dpi=dpi, bg=bg, configPIL=configPIL) File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 680, in drawToFile c = drawToPMCanvas(d, dpi=dpi, bg=bg, configPIL=configPIL, showBoundary=showBoundary) File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 666, in drawToPMCanvas draw(d, c, 0, 0, showBoundary=showBoundary) File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 51, in draw R.draw(renderScaledDrawing(drawing), canvas, x, y, showBoundary=showBoundary) File "/usr/lib/python3/dist-packages/reportlab/graphics/renderbase.py", line 204, in draw self.initState(x,y) #this is the push() File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 98, in initState self.applyState() File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 92, in applyState self._canvas.setFont(s['fontName'], s['fontSize']) File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 399, in setFont _setFont(self._gs,fontName,fontSize) File "/usr/lib/python3/dist-packages/reportlab/graphics/renderPM.py", line 251, in _setFont raise RenderPMError("Can't setFont(%s) missing the T1 files?\nOriginally %s: %s" % (fontName,s1,s2)) reportlab.graphics.renderPM.RenderPMError: Can't setFont(Times-Roman) missing the T1 files? Originally <class 'TypeError'>: makeT1Font() argument 2 must be str, not None ``` After installing the `gsfonts` package, the traceback does not occurs and the code works as expected. lsb release: Ubuntu 20.04.1 LTS python3-renderpm:amd64 3.5.34-1ubuntu1 ** Affects: python-reportlab (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1918107 Title: renderPM can't set font To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python-reportlab/+bug/1918107/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs