使用convert将.png批量转换为.pdf时遇到问题


111
convert /home/bill/TempScan/*.png  myfile.pdf

给出错误信息:

convert-im6.q16: not authorized `myfile.pdf' @ error/constitute.c/WriteImage/1037.

任何帮助,将不胜感激!

Answers:


155

convert是转换图形的强大命令行工具。据称,这会带来安全风险,尤其是在与Web服务器结合使用时。在最新版本的Ubuntu中,实现了策略文件,其中convert限制了其使用。显然,该文件默认情况下禁止将多个图形文件“转换”为一个PDF文件。

策略文件是/etc/ImageMagick-6/policy.xml。您可以以root用户身份编辑该文件以更改策略。

消除所有使用限制

对于不运行Web服务器的桌面用户,只需消除这些限制可能就足够了。为此,可以删除文件,但是更好的做法是通过重命名“将文件移出”。使用此命令,您将重命名文件。结果,所有策略都被取消,但是如果需要,您仍然可以还原:

sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout

要恢复为原始状态,只需将其重命名为原始名称:

sudo mv /etc/ImageMagick-6/policy.xmlout /etc/ImageMagick-6/policy.xml

仅消除合并为PDF的限制

对于您的特定情况,gene_wood在注释中指出可以通过注释以下一行来选择性地放宽使用PDF文件的策略:

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

编辑文件,并在此行周围放置注释标记以禁用此规则:

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

如果您不想消除所有安全策略,这是必须采取的方法。

免责声明:已警告您删除此策略文件会删除某些安全策略。


多亏了钒,我按照建议的方式将文件重命名,并且可以正常工作。
Bill-lancaster '18 -10-8

4
我进入policy.xml文件,找到阻止我将png文件组合到pdfs并注释掉的行。这条线是<policy domain="coder" rights="none" pattern="PDF" />,如果你想离开其他规则不变,但允许有工作pdf秒。
gene_wood

1
@gene_wood,谢谢:我添加到帖子中是因为它为希望更谨慎地消除限制的用户提供了更多的见解和选择。

2
好的,这在Ubuntu 18.04中可以使用imagemagick 8:6.9.7.4 + dfsg-16ubuntu6.4。谢谢。
Geppettvs D'Constanzo

第二种方法对我有用,但第一种没有。
的壁架

35

钒所张贴,您必须更改ImageMagick策略。

sudo vim /etc/ImageMagick-6/policy.xml

并更换线

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

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

如果您只想允许写而不是读,则还可以擦除read|上面一行中的部分。


顺便说一句,对于那些对ImageMagick漏洞感兴趣的人,这里有2条信息链接:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.