Ubuntu22.04下ImageMagick更新后无法识别Ghostscript字体
Ubuntu 22.04 下ImageMagick更新后GhostScript字体无法识别的解决方法
检查配置文件权限与归属
先确认/etc/ImageMagick-6/type-ghostscript.xml和/etc/ImageMagick-6/type.xml的权限和归属是否正确,运行:ls -l /etc/ImageMagick-6/type*.xml正常权限应为
644,归属是root:root,如果不对,执行以下命令修复:sudo chmod 644 /etc/ImageMagick-6/type*.xml sudo chown root:root /etc/ImageMagick-6/type*.xml验证GhostScript字体识别状态
ImageMagick依赖GhostScript读取这类字体,先确认GhostScript本身能否识别Helvetica等字体:- 查看GhostScript版本:
gs --version - 列出GhostScript识别的字体:
gs -c "quit" -dNOPAUSE -dSAFER -dQUIET -dSHOWFONTS
如果Helvetica不在输出里,说明GhostScript的字体配置有问题,先安装免费字体包:
sudo apt install fonts-freefont-ttf然后更新系统字体缓存:
sudo fc-cache -fv- 查看GhostScript版本:
重新生成ImageMagick字体配置
先备份原有配置文件:sudo cp /etc/ImageMagick-6/type-ghostscript.xml /etc/ImageMagick-6/type-ghostscript.xml.bak用
imagick_type_gen重新生成配置,指定字体目录(以freefont为例,可根据实际路径调整):sudo imagick_type_gen -d /usr/share/fonts/truetype/freefont/ > /etc/ImageMagick-6/type-ghostscript.xml之后直接运行命令验证字体是否被识别:
convert -list font | grep Helvetica检查ImageMagick字体搜索路径
查看ImageMagick的字体搜索路径配置:identify -list configure | grep FONTPATH确保输出中包含GhostScript字体所在的目录(比如
/usr/share/fonts/truetype/freefont/),如果缺失,可在/etc/ImageMagick-6/policy.xml中添加对应路径(注意格式规范)。实际调用测试
如果convert -list font还是没显示,但想确认字体能否实际使用,可运行测试命令:convert -font Helvetica -pointsize 24 label:"Test Text" test.png若能成功生成图片,说明字体实际可用,列表不显示可能是配置列表生成的小问题;若报错,根据错误提示进一步排查。
内容的提问来源于stack exchange,提问作者Elier
相关产品推荐
相关产品推荐

