imagemagick - 不允许转换

n00*_*exe 31 pdf convert imagemagick jpeg

我有多*.jpeg张图片我喜欢合并到一个*.pdf文件中,如下所示:

convert Blatt1.jpg Blatt2.jpg Blatt3.jpg Blatt4.jpg out.pdf
Run Code Online (Sandbox Code Playgroud)

我收到以下异常提示:

convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408
Run Code Online (Sandbox Code Playgroud)

是什么导致了这个问题,我该如何解决?我做了一些研究,但找不到关于这个特定问题的任何信息。

cma*_*.fr 52

ImageMagick 有一些安全策略,出于安全原因禁用了某些权限。在此答案的底部了解原因。
您必须编辑配置文件以重新启用所需的操作。

/etc/ImageMagick-6/policy.xml使用您最喜欢的文本编辑器打开,找到该行<policy domain="coder" rights="none" pattern="PDF" />并替换"none""read|write"

# Open the file 
sudo nano /etc/ImageMagick-6/policy.xml

# find and edit the line
<policy domain="coder" rights="none" pattern="PDF" />
# to :
<policy domain="coder" rights="read|write" pattern="PDF" />
Run Code Online (Sandbox Code Playgroud)

关于 ImageMagick 安全策略 制定
受限策略是为了防止来自第三方软件的未知漏洞,如此处用于 PDF 文件的 Ghostscript。请务必更新 Ghostscript。

  • @Sqerstet :您是否已将有关安全性“policy.xml”的 imagemagick 文档更改为红色?不... _ImageMagick 认为存在安全问题。_ 不,他们没有。制定受限策略是为了防止来自第三方软件的未知漏洞,如此处用于 PDF 文件的 Ghostscript。如果 Ghostscript 是最新的,则没有(已知)问题。祝你有美好的一天,请阅读,阅读,阅读 (3认同)
  • 对于来到这里的任何人,我建议您查看已标记为重复的问题。当有比要求 ImageMagick 解码 JPEG 然后将它们重新编码作为制作 PDF 的一部分更安全*和*更无损的替代方案时,您真的不想放松 ImageMagick 的安全策略。 (2认同)
  • 附加信息:请确保您已安装 GhostScript &gt;= 9.26。之后,您可以使用 policy.xml https://www.suse.com/support/kb/doc/?id=000019384 (2认同)

sud*_*dus 6

由于存在安全隐患的已知错误,ImageMagick 中禁用了 pdf 转换convert

我建议你解决这个问题

  • 任何一个
    • 将图片导入 LibreOffice并保存文档。
    • 从 LibreOffice导出为 pdf
  • 或者

编辑:现在有一个解决方案,ghostscript 在我的计算机中已经足够新了,而且我认为在大多数最新的 Linux 操作系统中:

附加信息:请确保您已安装 GhostScript >= 9.26。之后,您可以使用policy.xml https://suse.com/support/kb/doc/?id=000019384

因此,我们可以在接受的答案中进行编辑,并再次开始使用 Ghostscript 通过 ImageMagick 转换为 pdf convert

  • 由于建议用交互式替换批处理命令而被否决,该命令很容易从较大的脚本中摘录。 (3认同)
  • 赞成不建议人们破坏默认安全设置。这里的另一个选择:https://askubuntu.com/a/1210721/304983 (2认同)
  • @Sqerstet 这些默认安全设置对于大多数用户来说完全无关。这并不是说它们毫无用处:对于那些在某些 Web 服务中运行 ImageMagick 的少数用户来说,这是一个严重的安全问题,因此开发人员禁用此功能以强制解决问题当然是正确的。但对于仅使用 ImageMagick 处理 PDF 的其他人来说,他们可以完全控制,重新启用它比切换到完全不同的工具(当然像 LibreOffice 一样不适合该任务)要明智得多。(不过,唯一正确的解决方案是修复 GhostScript...) (2认同)