内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

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

2019-01-07 19:57 出处:清屏网 人气: 评论(0

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

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.

1_问题.png

刚刚才upgrade过的,应该不是软件版本滞后的问题吧!

看了一下convert的版本,就是下图这样的,

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之前,还是先看看里面什么内容吧,别到时候进了文本编辑器一时手贱改错了东西,改不回来反而费事。

3_查看policy_xml文件_1.png

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。

重启系统。

附上我改的文件的样子:

4_修改policy_xml文件_1.png

4_修改policy_xml文件_2.png

成功转换

系统重启后,再来试试convert能不能把pdf转换为jpg。

然后,默认的分辨率太低,转换出来的jpg图片一片模糊,没法看。

把宽高分辨率参数-density调到150的时候比较清晰了,再调到200就很清晰了。

5_成功转换.png


分享给小伙伴们:
本文标签: ImageMagickElementaryOS

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号