我有多张*.jpeg
图片想要合并成一个*.pdf
文件,如下所示:
convert Blatt1.jpg Blatt2.jpg Blatt3.jpg Blatt4.jpg out.pdf
我被提示以下异常:
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408
是什么原因导致了这个问题?我该如何解决它?我做了一些研究,但没有找到有关这个特定问题的任何信息。
答案1
ImageMagick 有一些安全策略,出于安全原因禁用某些权限。请参阅此答案底部的原因。
您必须编辑配置文件才能重新启用所需的操作。
使用您喜欢的文本编辑器打开/etc/ImageMagick-6/policy.xml
,找到该行<policy domain="coder" rights="none" pattern="PDF" />
并替换"none"
为"read|write"
# Open the file
sudo nano /etc/ImageMagick-6/policy.xml
# find and edit the line
<policy domain="coder" rights="none" pattern="PDF" />
# to :
<policy domain="coder" rights="read|write" pattern="PDF" />
关于 ImageMagick 安全策略
制定限制政策是为了防止来自第三方软件的未知漏洞,例如这里用于 PDF 文件的 Ghostscript。请务必更新 Ghostscript。
答案2
由于已知有安全隐患的错误,ImageMagick 中禁用 pdf 转换convert
。
我建议你解决这个问题,
- 任何一个
- 将图片导入LibreOfffice并保存文档。
- 导出为 pdf来自 LibreOffice。
- 或者
安装img2pdf来自存储库“universe”
sudo apt install img2pdf
并运行以下命令行来创建一个
pdf
文件,其中包含与问题相对应的几张图片或其他类似情况的图片,img2pdf --out out.pdf Blatt1.jpg Blatt2.jpg Blatt3.jpg Blatt4.jpg
手册中有关于微调的详细信息
man img2pdf
编辑:现在有一个解决方案,ghostscript 在我的计算机中已经足够新了,而且我认为在大多数最新的 Linux 操作系统中:
附加信息:请确保您已安装 GhostScript >= 9.26。之后,您可以尝试使用 policy.xml https://suse.com/support/kb/doc/?id=000019384:
因此,我们可以在接受的答案中进行编辑,然后再次开始使用 ghostscript 通过 ImageMagick 转换为 pdf convert
。