Azure Function App中nReco PDF生成器字体不生效问题咨询
Azure Function App中nReco PDF生成器字体问题解决方案
一、默认可用字体列表
Azure Function App不同运行环境预装的系统字体,nReco PDF(基于wkhtmltopdf)可直接调用:
- Windows环境:宋体、黑体、微软雅黑、Arial、Times New Roman、Courier New
- Linux环境:DejaVu Sans、DejaVu Serif、DejaVu Mono
二、字体不生效的核心原因
nReco PDF底层依赖wkhtmltopdf,它会优先从运行环境的系统字体库中查找指定字体。若HTML中引用的字体不在Azure Function默认字体库内,会被自动替换为 fallback 默认字体(如宋体或DejaVu Sans),导致无论设置何种字体输出效果一致。
三、自定义字体生效方案
嵌入字体文件到项目
- 将
.ttf/.otf格式的字体文件添加到Function项目,设置文件属性为「复制到输出目录」 - 在HTML中通过
@font-face声明嵌入:@font-face { font-family: 'CustomFont'; src: url('./fonts/CustomFont.ttf') format('truetype'); font-weight: normal; font-style: normal; } - 路径需对应字体文件在Function运行目录的实际位置,可通过
Environment.CurrentDirectory获取运行路径拼接。
- 将
验证字体名称正确性
- CSS中
font-family的名称必须与字体文件的内部名称一致(非文件名),可通过Windows字体查看器等工具确认。
- CSS中
Linux环境额外处理
- Linux版Function默认字体较少,可在启动脚本中安装额外字体包:
apt-get update && apt-get install -y fonts-wqy-microhei - 注意:Azure Function临时文件系统会在冷启动时重置,若需持久化字体,建议使用预安装字体的自定义镜像。
- Linux版Function默认字体较少,可在启动脚本中安装额外字体包:
内容的提问来源于stack exchange,提问作者Angelo
相关产品推荐
相关产品推荐

