![如何在不耗尽资源的情况下将大量图像转换为 1 个 pdf](https://linux22.com/image/156346/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E8%80%97%E5%B0%BD%E8%B5%84%E6%BA%90%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%B0%86%E5%A4%A7%E9%87%8F%E5%9B%BE%E5%83%8F%E8%BD%AC%E6%8D%A2%E4%B8%BA%201%20%E4%B8%AA%20pdf.png)
我正在尝试将数千张 jpg 图像转换为 1 个大 PDF。每张图片都是书中的一页。我尝试使用以下命令:
convert * out.pdf
但大约 150 张图像后我会收到此错误:
convert-im6.q16: DistributedPixelCache '127.0.0.1' @ error/distribute-cache.c/ConnectPixelCacheServer/244.
convert-im6.q16: cache resources exhausted `0-23/3_014.jpg' @ error/cache.c/OpenPixelCache/3984. ...
convert-im6.q16: too many exceptions (exception processing suspended).
是的,我将 imagemagick 的 policy.xml 文件中的资源限制更改为 8GiB。我有一台像样的笔记本电脑。 8GB 内存、2.4hz x 4、2GB GPU
大约有3000张图片,总共1GB
还有别的办法吗?
答案1
不知道这是否有效,但您可以尝试以下两步过程。
首先,分别转变每个 jpg 图像都有自己的 pdf,
转换 image1.jpg image1.pdf
转换 image2.jpg image2.pdf
等
然后使用pdfjam(man pdfjam 获取信息)将所有图像收集到一个 pdf 中,
pdfjam 图像*.pdf --outfile allimages.pdf
并看到http://go.warwick.ac.uk/pdfjam(如联机帮助页上的建议)还有更多 --switches 等。
答案2
我发现的资源消耗最少的方法是在图像查看器/浏览器中打开图像(gThumb、Pix、Gwenview、肖特韦尔) 进而将它们打印到文件中- 也就是说pdf。
更多详细信息 - 带图片 - 此处:https://unix.stackexchange.com/a/555535/341192。在“打印”为 pdf 之前,也可以通过这种方式重新排列图像。
一个相当简单的方法(与其他 CLI 相比,但可能不是我上面提到的)这。