n00*_*exe 31 pdf convert imagemagick jpeg
我有多*.jpeg张图片我喜欢合并到一个*.pdf文件中,如下所示:
convert Blatt1.jpg Blatt2.jpg Blatt3.jpg Blatt4.jpg out.pdf
Run Code Online (Sandbox Code Playgroud)
我收到以下异常提示:
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个问题,我该如何解决?我做了一些研究,但找不到关于这个特定问题的任何信息。
cma*_*.fr 52
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" />
Run Code Online (Sandbox Code Playgroud)
关于 ImageMagick 安全策略 制定
受限策略是为了防止来自第三方软件的未知漏洞,如此处用于 PDF 文件的 Ghostscript。请务必更新 Ghostscript。
由于存在安全隐患的已知错误,ImageMagick 中禁用了 pdf 转换convert。
我建议你解决这个问题
sudo apt install img2pdf
Run Code Online (Sandbox Code Playgroud)
并运行以下命令行来创建一个pdf文件,其中包含与问题相对应的几张图片或其他情况下的类似内容,
img2pdf --out out.pdf Blatt1.jpg Blatt2.jpg Blatt3.jpg Blatt4.jpg
Run Code Online (Sandbox Code Playgroud)
说明书上有微调的细节man img2pdf
编辑:现在有一个解决方案,ghostscript 在我的计算机中已经足够新了,而且我认为在大多数最新的 Linux 操作系统中:
附加信息:请确保您已安装 GhostScript >= 9.26。之后,您可以使用policy.xml https://suse.com/support/kb/doc/?id=000019384:
因此,我们可以在接受的答案中进行编辑,并再次开始使用 Ghostscript 通过 ImageMagick 转换为 pdf convert。