You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReportLab生成PDF时仅部分Latin-2字符编码正常的问题求助

ReportLab生成PDF时仅部分Latin-2字符编码正常的问题求助

各位大佬好,我现在在用Python的ReportLab库生成PDF发票,遇到了一个编码相关的问题,想请教下大家:

我要生成的PDF里的文本是斯洛文尼亚语,包含像č、š、ž这类属于Latin-2字母表的特殊字符。目前我的代码大致是这样的:

pdf = canvas.Canvas(...)
pdf.setFont("Helvetica", 3)
for line in receipt_lines:
    textobject.textLine(line.rstrip())

pdf.drawText(textobject)

这段代码能正常生成PDF,但奇怪的是,部分Latin-2字符(主要是'č')会被替换成黑色方块。比如原句:

"Račun je bil uspešno nastisnjen"

在最终PDF里会显示成:

"Ra□un je bil uspešno natisnjen"

(注:□代表实际显示的纯黑方块)

我知道ReportLab在编码处理上有点棘手,但实在搞不懂为什么只有部分特殊字符显示异常,其他像š这类却能正常显示。有没有大佬能帮我分析下原因,或者给个解决思路呀?

备注:内容来源于stack exchange,提问作者Jurij Plaskan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 13:34:31