在日常工作中我们可能需要将不同的PDF或图像合并为一个PDF上,这种情况并不少见。 这时候我们需要学习使用一个非常强大的命令行工具ImageMagick。
通过apt命令下载安装ImageMagick
在Ubuntu 20.04版本中已经预装了ImageMagick,因为有许多软件包使用此工具作为依赖项。通过apt(高级软件包工具)安装ImageMagick非常简单。该软件包已在标准Ubuntu存储库中提供。
打开终端执行以下命令:
首先通过执行以下命令刷新本地包索引:
sudo apt update
接下来执行以下命令来安装ImageMagick:
sudo apt install imagemagick
使用ImageMagick将多个图像合并为一个PDF
我们将使用ImageMagick的转换命令行工具将多个图像合并为一个PDF文件,执行以下命令即可:
convert image1.jpg image2.png image3.bmp output.pdf
命令中图像的顺序决定了output.pdf中图像的合并顺序。
如果转换为PDF时出现以下错误:
convert: attempt to perform an operation not allowed by the security policy 'PDF' @ error/constitute.c/IsCoderAuthorized/408
跳转至“解决安全策略错误”部分,我们在其中讨论了如何解决此问题。
使用ImageMagick将多个PDF合并为一个PDF
使用的是以上合并图片使用过的类似命令,但有一些额外的选项,目的是使得output.pdf的质量更好。
要进行转换,请使用以下命令:
convert -density 300 file1.pdf file2.pdf file3.pdf output.pdf
-density设置渲染PDF的dpi。将此设置为300/600效果为最好。
甚至您还可以在命令中交替使用image和pdf:
convert file1.pdf image1.jpg output.pdf
如果你遇到以下问题,请到下一个标题,我们来讲解
convert: attempt to perform an operation not allowed by the security policy 'PDF' @ error/constitute.c/IsCoderAuthorized/408
解决安全策略错误
ImageMagick具有一些安全策略,出于安全原因而禁用了某些权限。你将必须编辑配置文件以重新启用所需的操作。
使用您喜欢的文本编辑器打开/etc/ImageMagick-6/policy.xml,找到以下行:
<policy domain="coder" rights="none" pattern="PDF" />
并将“ none”替换为“ read | write”
在终端中打开文件并执行:
sudo nano /etc/ImageMagick-6/policy.xml
查找并编辑该行:
<policy domain="coder" rights="none" pattern="PDF" />
改为
<policy domain="coder" rights="read|write" pattern="PDF" />
执行完任务后,建议将policy.xml更改回之前的状态。使用ImageMagick还可以执行许多其他有用的任务,例如调整图像大小,在图像格式之间进行转换等等。