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

GraphicsMagick生成PDF而非JPG?PDF转JPG缩略图异常问询

问题排查与解决

从你提供的信息来看,核心异常是GraphicsMagick日志显示生成JPG,但实际输出文件内容为PDF。结合同版本机器能正常运行的情况,重点排查以下几点:

1. 验证Ghostscript(GS)的执行结果

GraphicsMagick依赖Ghostscript处理PDF,verbose日志已显示调用GS生成PNM临时文件。手动执行这条GS命令,检查输出是否为有效图像:

/usr/local/bin/gs -q -dBATCH -dSAFER -dMaxBitmap=50000000 -dNOPAUSE -sDEVICE=pnmraw -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r50x50 -dFirstPage=1 -dLastPage=1 -sOutputFile=test.pnm input.pdf -c quit
  • 若test.pnm无法正常打开(比如gm identify test.pnm报错),说明Ghostscript处理PDF失败,导致GraphicsMagick fallback到直接复制原PDF内容到输出文件。
  • 此时检查Ghostscript版本(gs --version),对比正常机器的GS版本,优先保证版本一致;同时用ldd /usr/local/bin/gs查看GS是否缺少依赖库。

2. 强制指定输出格式

GraphicsMagick可能因扩展名关联异常,错误选择输出格式。尝试在命令中强制指定JPG格式:

gm convert -density 50 input.pdf[0] -background white -resize 140x140 -strip -quality 40 jpg:thumb.jpg

或添加-format jpg参数:

gm convert -density 50 input.pdf[0] -background white -resize 140x140 -strip -quality 40 -format jpg thumb.jpg

3. 检查GraphicsMagick的格式支持

执行以下命令查看JPG和PDF的读写支持状态:

gm identify -list format | grep -E "(JPG|PDF)"

确保JPG条目带有W(可写)标记,PDF条目带有R(可读)标记。若JPG可写支持缺失,需重新编译GraphicsMagick并确保libjpeg库已正确安装。

4. 检查临时目录权限

GraphicsMagick需在/tmp创建临时文件,若/tmp权限不足会导致中间PNM文件生成失败。检查/tmp权限:

ls -ld /tmp

正常权限应为drwxrwxrwt,若异常执行chmod 1777 /tmp修复。

内容的提问来源于stack exchange,提问作者clarkk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:48:14