如何解决以下字体问题?
buffer = io.BytesIO() c = canvas.Canvas(buffer) c.drawString(100, 100, "Māngere") c.save() buffer.seek(0) return FileResponse(buffer, filename="test.pdf")
上面的代码无法在生成的PDF上正确显示“Māngere”,如下:
正如 Kacper 上面所说(我只是在这里重新发布以使其更明显),您需要使用 ttf 字体。
您可以通过这种方式轻松注册:
from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont pdfmetrics.registerFont(TTFont('PlexMono', 'IBMPlexMono-Regular.ttf')) #I found this on Google fonts #...# canvas.setFont("PlexMono", 20)