GraphicsMagick,GhostScript 之 nodejs
2021-09-27 123
nodejs 老牌的为数不多的图像编辑库
- GM:图像处理库
官方网站
官方Api
基本用法 - GC (Ghostscript package):渲染、显示、打印的 PostScript 和可移植文档格式 (PDF) 页面描述语言解释器
GC 安装 - GC 字体包( Ghostscript Fonts ):(直到查文档的 Prerequisites 才知道有这么个东西)
出现问题
这个项目用到的是 TS,不搭配任何框架。因此选型时候就得看 Nodejs 的库(方便管理)
由于我一心想用 npm 去管理,因此只能靠 NPM 命令直接下载的软件包来使用。
后果:这次我下到的是旧版本 1.3.2, 32 bit
中途出现一个 BUG:
gm convert: Unable to read font (n019003l.pfb) [No such file or directory].
查找后发现是缺少 gc 字体包。Mac 和 Linux 都多解决方案,很成功,唯独 Windows 很少。
查了资料和两个版本的源码(源码详见最后面,开头有 version 版本号和 source 源码地址)
参考 GraphicsMagick笔记得知,他是通过注册表的路径找目录。解决方向就是 改掉相对路径变量或者用绝对路径替换
相对路径变量
怀疑是这几方面的问题:
- 源码找默认目录:逻辑识别有问题
- 32 bit 和 64 bit 有问题
- 源码找默认目录:路径转换有问题
下手难度大,遂放弃,直接跳过
绝对路径替换
解决方法:
- 下载 字体包,将解压后的 fonts 放到一个位置
- 到GraphicsMagick安装目录,找到 type-ghostscript.mgk ,打开
- 搜索 n019003l (全部都要改 ,我的是有 2 处)
将
@ghostscript_font_dir@ 改成现在 fonts 绝对路径
例如:
metrics="@ghostscript_font_dir@n019003l.afm"
glyphs="@ghostscript_font_dir@n019003l.pfb"
改成
metrics="C:\gs\fonts\n019003l.afm"
glyphs="C:\gs\fonts\n019003l.pfb"