jpg 转 pdf 时出错

Ado*_*man 97 pdf convert

每次我想通过此命令将jpg文件转换为pdf

convert *.jpg pictures.pdf
Run Code Online (Sandbox Code Playgroud)

我有这个错误信息:

convert: not authorized `pictures.pdf' @ error/constitute.c/WriteImage/1028.
Run Code Online (Sandbox Code Playgroud)

小智 124

此问题来自安全更新:https : //launchpad.net/ubuntu/+source/imagemagick/8 : 6.8.9.9-7ubuntu5.13

有人将其报告为错误:https : //bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563

作为一个临时的解决办法,我编辑/etc/ImageMagick-6/policy.xml和改变了PDF的权利noneread|write那里。不确定其中的含义,但至少它可以让我完成任务。

  • 这确实像宣传的那样有效。我只是注释掉(有效删除)pdf 行。最好知道副作用是什么!配置文件中的策略映射注释说这是用于“禁用 ghostscript 格式类型”。 (3认同)
  • 我对更改安全设置犹豫不决。作为 imagemagick 的替代方案,我使用了“pdftoppm -jpeg input.pdf output.jpg”(来自名为 poppler-utils 的包)。此替代方案发布在 https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563 (3认同)

N0r*_*ert 23

按照接受的答案在我的 Ubuntu 16.04.6 LTS 上修复了这个问题

创建简单的 sed one-liner 以更快地修复此问题:

sudo sed -i 's#<policy domain="coder" rights="none" pattern="PDF" />#<policy domain="coder" rights="read|write" pattern="PDF" />#' /etc/ImageMagick-6/policy.xml

并以程序化的方式。


ser*_*inc 7

如果您担心影响,https: //bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563 提到

虽然发行说明并不完全清楚,但 Ghostscript v9.25 似乎提到修复此类漏洞:https ://www.ghostscript.com/doc/9.25/News.htm


Sqe*_*tet 5

禁用安全限制是一个不好的习惯。ImageMagick 的作者大概是有原因的。您应该尊重这一点,除非您确切地知道自己在做什么。对于大多数查看这些答案的人来说,这似乎不太可能。

在这种情况下,正确的做法是使用作者自己认为安全的其他软件。

这里img2pdf符合要求:

img2pdf --output out.pdf in.jpg
Run Code Online (Sandbox Code Playgroud)