Abs*_*cDo 16 imagemagick convert-command 19.04
根据这个问题,如何在 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.
Run Code Online (Sandbox Code Playgroud)
gs
已安装:
$ gs --version
9.26
Run Code Online (Sandbox Code Playgroud)
Ubuntu 版本:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
Run Code Online (Sandbox Code Playgroud)
and*_*.46 28
有趣的是,19.04(和其他 Ubuntu 版本!)下的 ImageMagick 禁用了许多 ghostscript 格式类型。这可以在以下片段中看到/etc/ImageMagick-6/policy.xml
:
<!-- disable ghostscript format types -->
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" /> <------- Here!!
<policy domain="coder" rights="none" pattern="XPS" />
Run Code Online (Sandbox Code Playgroud)
当然,我添加了箭头以引起您的注意:)。将此箭头线修改为:
<policy domain="coder" rights="read | write" pattern="PDF" />
Run Code Online (Sandbox Code Playgroud)
您可以使用您最喜欢的文本编辑器来完成此操作,使用提升的权限,或者简单地使用以下 sed one-liner:
sudo sed -i_bak \
's/rights="none" pattern="PDF"/rights="read | write" pattern="PDF"/' \
/etc/ImageMagick-6/policy.xml
Run Code Online (Sandbox Code Playgroud)
然后一切都应该没问题,我已经在我自己的 19.04 VM 上进行了全面测试,您所进行的转换工作完美无缺......
如果您希望将设置更改回默认值,以下一个 liner 将使用 sed 恢复在运行中创建的备份文件:
sudo mv /etc/ImageMagick-6/policy.xml_bak /etc/ImageMagick-6/policy.xml
Run Code Online (Sandbox Code Playgroud)
命令行多酷啊!
出现相同错误的另一个原因是源图像太宽、太高或太重。
该/etc/ImageMagick-6/policy.xml
文件控制什么是可接受的图像。最大宽度和高度设置如下:
<policy domain="resource" name="width" value="10KP"/>
<policy domain="resource" name="height" value="10KP"/>
Run Code Online (Sandbox Code Playgroud)
10KP 代表 10000 像素。如果您的图像比运行identify
时大,则不会在终端中显示图像信息,并且图像对于 Image Magick 来说基本上是遥不可及的。
影响图像是可用与否其他常见的属性是:memory
,map
,area
和disk
。
这里描述的文件policy.xml
:https : //imagemagick.org/script/security-policy.php
以上所有内容+1。
另请注意,我的 Docker 容器没有gs
安装 (Ghostscript),因此convert-im6.q16: no images defined
在这种情况下会抛出非常类似的错误消息。
归档时间: |
|
查看次数: |
16104 次 |
最近记录: |