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.

当前回答

曼扎罗 2021 年 4 月

只需删除/etc/ imagemagick -7/policy.xml中<policymap>内未注释的行

其他回答

我使用nextcloud时遇到了这个问题,它无法为pdf文件创建缩略图。

然而,这些建议的步骤都不能解决我的问题。

最终我找到了原因:接受的答案确实有效,但我必须在编辑policy.xml文件后重新启动php-fpm:

 sudo systemctl restart php7.2-fpm.service

在Ubuntu 19.10上,我在/etc/ imagemagick -6/policy.xml中完成了这个操作

取消这

<policy domain="module" rights="read | write" pattern="{PS,PDF,XPS}" />

评论一下

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

在此之后,该命令正常工作,没有错误

convert -thumbnail x300 -background white -alpha remove sample.pdf sample.png 

作为@Richard Kiefer的一个非常活跃的评论,一个简单的修复是这样的

$ sudo sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xml

嗯,我补充道

  <policy domain="coder" rights="read | write" pattern="PDF" />

就在/etc/ imagemagick -7/policy.xml中的</policymap>之前,这使它再次工作,但不确定这对安全的影响。

曼扎罗 2021 年 4 月

只需删除/etc/ imagemagick -7/policy.xml中<policymap>内未注释的行