解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)

今天一个偶然的情况,想把一页pdf转换为jpg图片,上传到网页。于是就用来自ImageMagick工具的convert命令,然后意外的是这次竟然出错了——无法转换。之前都是好好的呀!百般查询之下,终于找到解决方案,遂整理如下。

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 pdf2jpg.png

操作系统:elementary OS 0.4.1 Loki(64-bit)。
Shell:Bash / Zsh。
软件:ImageMagick (具体是convert命令)。
软件:Vim。

问题出现

在Terminal(终端)中输入命令,报错,如下图所示,

conver xxxxxx.pdf xxxxxx.jpg
convert: not authorized `xxxxxx.pdf' @ error/constitute.c/ReadImage/412.
convert: no images defined `xxxxxx.jpg' @ error/convert.c/ConvertImageCommand/3210.

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 1_问题.png

刚刚才upgrade过的,应该不是软件版本滞后的问题吧!
看了一下convert的版本,就是下图这样的,

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 2_查看convert版本.png

于是上网查查怎么回事。
在度娘里,用「linux转换pdf为jpg」搜出来的,都是如何安装ImageMagick和输入convert命令的结果;
换用「convert: not authorized `10.pdf’ @ error/constitute.c/ReadImage/412.」搜出来的,第一个就是了,stackoverflow上面的一个提问和回答帖(<–点左边蓝字链接可直达原帖)。

OK!看了一下,是要修改ImageMagick里的policy.xml文件。
看起来并不难,动手照着做吧!

修改「/etc/ImageMagick-6/policy.xml」文件

在zsh里,输入「/etc/Image」之后,按一下tab,后面的目录名称就自动补全了。在修改policy.xml之前,还是先看看里面什么内容吧,别到时候进了文本编辑器一时手贱改错了东西,改不回来反而费事。

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 3_查看policy_xml文件_1.png

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 3_查看policy_xml文件_2.png

嗯,对于我这个小白程度的linux用户来说,基本上还是能瞎改改的嘛!(信心满满!)

因为已经试过一次用普通用户的身份去打开这个文件,提示只读,所以下面就直接叙述使用sudo的完整权限的命令了。

sudo vim policy.xml

接着输入密码,敲下回车键,清脆的声音响起,进入Vim的世界了。
按照stackover原帖上的方法,有几个小步骤:

  • 「1」增加一行:
<!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
  • 「2」修改一行:
<policy domain="coder" rights="none" pattern="PDF" />

<policy domain="coder" rights="read|write" pattern="PDF" />
  • 「3」增加一行:
<policy domain="coder" rights="read|write" pattern="LABEL" />

保存文件,退出Vim。

重启系统。

附上我改的文件的样子:

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 4_修改policy_xml文件_1.png
《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 4_修改policy_xml文件_2.png

成功转换

系统重启后,再来试试convert能不能把pdf转换为jpg。
然后,默认的分辨率太低,转换出来的jpg图片一片模糊,没法看。
把宽高分辨率参数-density调到150的时候比较清晰了,再调到200就很清晰了。

《解决ImageMagick转换pdf为jpg时的报错问题(ElementaryOS)》 5_成功转换.png

整理完毕,收工!

砚湖@飘香生活馆
二〇一九年一月四日

ElementaryOS/Linux使我快乐!

    原文作者:砚湖
    原文地址: https://www.jianshu.com/p/482f66a93fee
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞