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.
在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
正如某些评论中指出的,您需要在/etc/ImageMagick-7/policy.xml中编辑ImageMagick的策略。更具体地说,在撰写本文时(05/01/2019),在ArchLinux中,以下一行是未注释的:
<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
只要在<!——和——>来注释它,PDF转换应该再次工作。
在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