Linux下GraphicsMagick转换WMF文件输出PNG文本不显示问题
GraphicsMagick转换WMF文件缺失文本的解决方案
GraphicsMagick默认通过libwmf库解析WMF格式文件,该库对WMF内嵌特殊字体、矢量文本的渲染支持完善度低于LibreOffice Draw的WMF解析组件,这是转换后文本丢失的核心原因。
方案1:用LibreOffice命令行转换(优先推荐,兼容性最好)
既然已经确认LibreOffice Draw可以正常打开目标WMF文件,直接调用LibreOffice的无头模式转换可以完全规避libwmf的兼容性问题:
- 基础转换命令:
libreoffice --headless --convert-to png --outdir ./ "100MHZ EM2 HPF 061221.WMF" - 如需自定义DPI(比如设置为你需要的1200),使用带参数的命令:
libreoffice --headless --convert-to png:"draw_png_Export":1200 --outdir ./ "100MHZ EM2 HPF 061221.WMF"
方案2:修复GraphicsMagick的WMF渲染依赖
如果必须使用GraphicsMagick完成转换,可以先调整libwmf的运行配置:
- 先安装完整的
libwmf组件和常用字体包:
Debian/Ubuntu 系列系统执行:sudo apt install libwmf-bin libwmf0.2-7 fonts-liberation fonts-wqy-microhei
RHEL/CentOS/Fedora 系列系统执行:sudo dnf install libwmf libwmf-tools liberation-fonts wqy-microhei-fonts - 执行转换时先指定
libwmf的字体加载路径:export WMF_FONTPATH=/usr/share/fonts && gm convert -density 1200x1200 "100MHZ EM2 HPF 061221.WMF" Test2.png - 仍有文本缺失的话可以先走中间格式转换再输出PNG:
gm convert "100MHZ EM2 HPF 061221.WMF" temp.eps && gm convert -density 1200x1200 temp.eps Test2.png
方案3:使用ImageMagick替代转换
ImageMagick对WMF格式的解析适配比GraphicsMagick更完善,安装后执行以下命令即可:convert -density 1200x1200 "100MHZ EM2 HPF 061221.WMF" Test2.png
如遇到字体缺失提示,参照方案2安装对应字体包即可解决。
内容的提问来源于stack exchange,提问作者Johannes
相关产品推荐
相关产品推荐

