如何在Linux上的命令行中将一系列图像转换为PDF?[关闭]


214

我有一个用cgi / bash编写的扫描服务器,希望能够从命令行将一堆图像(全部在一个文件夹中)转换为pdf。那怎么办?


另请参阅如何从一系列图像生成PDF?在超级用户上。
zrajm 2013年

2
相关:在Unix SE
上将

7
使用img2pdf,而不是ImageMagick。ImageMagick对JPEG进行解码,导致生成损失,并且比img2pdf慢10-100倍。
罗伯特·弗莱明

1
sudo apt-get install gscan2pdf 简单易用。
M Haziq '18年

1
img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdf将使您document.pdf在当前目录中包含所有带有jpg或JP​​G扩展名的图像-每页一张图像。document.pdf会自然将所有图像按页面顺序排列(为的-V选项sort),因此在对图像文件进行编号时无需添加任何前导零。
Jimmix

Answers:


411

使用imagemagick,您可以尝试:

convert page.png page.pdf

或多张图片:

convert page*.png mydoc.pdf

7
如果page * .png没有按照您想要的方式对图像排序怎么办?例如page_1.png,page_2.png ... page_10.png-> page_10将出现在page_1之前
vcarel 2013年

38
要对文件排序,可以使用:ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
GaloisPlusPlus,2014年

26
仅供参考,除了显示文件外,您几乎不需要使用ls其他任何东西……即不解析其输出。find是更合适的工具。这是一个例子convert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf。请记住,如果您的路径名包含空格,则上述命令将不起作用。需要转义的字符的添加使事情变得更加复杂。

19
这很简单,效果很好,谢谢!为了避免产生巨大的PDF文件,使用类似convert -compress jpeg -quality 85 *.png out.pdf
JLH

13
ImageMagick解码JPEG,从而导致生成损失。改用img2pdf ; 它也快了10-100倍。
罗伯特·弗莱明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.