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

使用pdfme库生成含波兰语字符PDF的技术问题

解决pdfme生成PDF时波兰语字符显示问题

问题核心不是文件写入的编码设置,而是pdfme默认使用的字体不支持波兰语特殊字符(如ą、ę、ł等)。你不需要修改文件写入模式或对字符串编码,只需要在文档配置中指定支持UTF-8的字体即可。

具体步骤:

  1. 准备支持波兰语的字体文件(比如DejaVu Sans、Arial Unicode MS),将字体文件(如DejaVuSans.ttf)放在项目目录下。
  2. 在构建document对象时,配置字体和对应样式:
from pdfme import build_pdf

# 定义包含波兰语字符的文档内容
document = {
    "content": [
        {"text": "Witam! Jestem Paweł, a to jest mój raport PDF."},
        {"text": "Polskie znaki: ą ę ć ł ń ó ś ź ż"}
    ],
    "styles": {
        "default": {
            "font_family": "DejaVuSans",
            "font_size": 12
        }
    },
    "fonts": {
        "DejaVuSans": "DejaVuSans.ttf"
    }
}

# 保持原有的二进制写入代码不变
with open('document.pdf', 'wb') as f:
    build_pdf(document, f)

为什么之前的方法失败:

  • 改成文本模式并设置encoding="utf-8":build_pdf输出的是字节流,文本模式要求写入字符串,因此触发TypeError。
  • 对字符串调用.encode("utf-8"):pdfme的文档内容要求传入字符串类型,字节对象不符合参数要求,因此报错。

内容的提问来源于stack exchange,提问作者Paweł Jabłoński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:20:27