我正在使用 Ubuntu 22.04,当尝试使用 ImageMagick 将 pdf 转换为 jpeg 格式时出现错误。/etc/ImageMagick-6/policy.xml:未找到命令

我正在使用 Ubuntu 22.04,当尝试使用 ImageMagick 将 pdf 转换为 jpeg 格式时出现错误。/etc/ImageMagick-6/policy.xml:未找到命令

感谢您查看我的情况。我正在运行 Ubuntu 22.04。我想将 pdf 文件转换为 jpeg 文件格式。输入后

dr@Dell-1:~$ sudo /etc/ImageMagick-6/policy.xml

我收到以下错误

sudo /etc/ImageMagick-6/policy.xml: command not found

我需要编辑策略 [这是我作为 Linux 新手从未做过的事情] 以允许 PDF 文件与 ImageMagick 一起使用。有人能告诉我我做错了什么吗?

答案1

这个答案详细说明您需要做什么。要克服这些限制,有两种可能:

  1. 删除所有策略文件。只需一个rm(删除) 命令即可轻松完成,但一点也不安全. 因此不是首选。

  2. 编辑策略文件以仅启用 PDF 操作。事实上,更喜欢采用这种方法。

要编辑该文件,您需要使用 root(管理员)权限在文本编辑器中打开它。有多种方法可以做到这一点。为了使编辑尽可能简单,您可能希望在gedit标准 Ubuntu 桌面中的图形文本编辑器中打开系统文件:

env EDITOR=gedit sudoedit /etc/ImageMagick-6/policy.xml

如果您可以使用基于标准终端的编辑器nano,则命令简化为:

sudoedit /etc/ImageMagick-6/policy.xml

这会在 Ubuntu 的标准终端编辑器中打开该文件nano

您自己尝试的命令只是指定了sudo。此命令后面应该跟着另一个命令。sudo然后将使用提升的权限(管理员或 root 权限,更改系统文件所需)运行该其他命令。将在其后运行一个命令,该命令会将以下命令提升为 root 权限。但是,您提供的不是命令,而是文件名。因此,sudo尝试将该文件作为可执行文件运行,但由于它不是可执行文件而失败。一种可行的方法,但出于安全考虑不太推荐,是:

sudo nano /etc/ImageMagick-6/policy.xml

优先使用前面的命令,sudoedit因为更安全:该命令会将系统文件复制到可以使用普通编辑器编辑的临时文件中。保存文件时,系统文件将使用临时文件的内容进行更新

答案2

需要编辑 policy.xml 中的一个单词,以便授予 ImageMagick 将 pdf 文件转换为图像的权限。ImageMagick 还可以批量转换图像格式(请参阅本答案末尾的示例命令)。如果 pdf 文件包含带有图像的多个页面,则可以使用 PDF Arranger 应用程序(sudo apt install pdfarranger)将这些页面导出为单页 PDF 文档,该应用程序还通过在新文件名中包含其原始页码来标识输出的每一页。

  1. 通过运行以下命令在终端中编辑 policy.xml 文件 /etc/ImageMagick-6/:

    sudo nano /etc/ImageMagick-6/policy.xml
    
  2. 按向下箭头键向下滚动到文件底部。在倒数第二行中找到<policy domain="coder" rights="none" pattern="PDF" /> 替换none为的行,如下图所示。read|write

    在此处输入图片描述

    Nano 文本编辑器键盘快捷键
    使用键盘组合键Ctrl+O然后按 将Enter文件保存到当前位置。
    使用键盘组合键Ctrl+X退出 nano。

您可以通过运行以下命令来验证编辑 policy.xml 文件的结果。

将单个 pdf 页面转换为 .png 图像:

convert test.pdf test.png

将同一目录中的多个pdf页面转换为图像:

mogrify -format png *.pdf 

mogrify如果当前目录中存在任何具有完全相同名称的 pdf 文件,命令将覆盖它,所以要小心。

答案3

因为您在错误的位置搜索“policy.xml”。该文件位于“/usr/local/etc/ImageMagick-6/policy.xml”

相关内容