小编典典

ImageMagick 安全策略“PDF”阻止转换

all

Imagemagick 安全策略似乎不允许我执行从 pdf 到 png 的转换。转换其他扩展似乎正在工作,只是不是来自 pdf。自安装以来,我没有更改任何
imagemagick 设置……如果操作系统很重要,我正在使用 Arch Linux。

user@machine $ convert -density 300 -depth 8 -quality 90 input.pdf output.png
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.

阅读 213

收藏
2022-03-10

共1个答案

小编典典

在 Ghostscript 修复后,ImageMagick 的更改被保留,因为应用程序(尤其是 Web 应用程序)经常将任意用户提供的文件提供给
ImageMagick,并不总是正确地强制执行格式限制,并且由于 Postscript(PDF
使用)是一个图灵完备的编程在沙箱中运行的语言,总是有可能在沙箱中出现另一个漏洞。

最好保留配置,以便 ImageMagick 拒绝处理需要运行程序的文件,而是在您 有意 允许 Postscript 渲染时直接调用
Ghostscript。

这将通过这样的 Ghostscript 命令来完成:

gs -dSAFER -r600 -sDEVICE=pngalpha -o foo.png myfile.pdf

是的,这是 ImageMagic 调用的 GhostScript 命令的变体。(参见 ImageMagick 的delegates.xml.-o
的简写-dBATCH -dNOPAUSE -sOutputFile=

重要的是 ImageMagick 保持锁定状态,您无需调用中间程序,并且您可以更好地控制渲染参数。(例如-r600,要渲染的 DPI
是否-sDEVICE=pngalpha允许您直接渲染为所需的格式)

2022-03-10