根据这个问题,如何在 linux 上从命令行将一系列图像转换为 PDF?, ImageMagick 可以将多个图像转换为单个 PDF。
如何反转操作并将多页的 PDF 转换为多个图像?
我已经尝试了以下命令,但我得到了显示的错误:
$ convert test.pdf test-%02.png
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert-im6.q16: no images defined `test-%02.png' @ error/convert.c/ConvertImageCommand/3258.
gs
已安装:
$ gs --version
9.26
Ubuntu版本:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
有趣的是,19.04(和其他 Ubuntu 版本!)下的 ImageMagick 禁用了许多 ghostscript 格式类型。这可以在以下片段中看到
/etc/ImageMagick-6/policy.xml
:当然我添加了箭头来引起你的注意:)。将此带箭头的线修改为:
您可以使用您最喜欢的文本编辑器来完成此操作,使用提升的权限,或者可能只是使用以下
sed
单行:然后一切都应该很好,我已经在我自己的 19.04 VM 上对此进行了全面测试,您所进行的转换可以完美地工作......
如果您希望将设置更改回默认设置,则以下一行将恢复在运行中创建的备份文件
sed
:命令行多么酷!
出现同样错误的另一个原因是源图像太宽、太高或太重。
该
/etc/ImageMagick-6/policy.xml
文件控制什么是可接受的图像。最大宽度和高度设置如下:10KP 代表 10000 像素。如果您的图像大于运行
identify
将不会在终端中显示图像信息,并且图像基本上是 Image Magick 无法触及的。影响图像是否可用的其他常见属性是:
memory
、map
和。area
disk
这里的文档描述
policy.xml
:https ://imagemagick.org/script/security-policy.php以上所有内容+1。
另请注意,我的 Docker 容器没有安装 (Ghostscript),因此在这种情况下会引发
gs
非常相似的错误消息。convert-im6.q16: no images defined