将JPEG文件目录转换为单个PDF文档


242

我的目录中有许多JPEG文件,我想将它们转换为PDF并将它们连接在一起以组成一个文档。

如何才能做到这一点?

我希望使用命令行,因为此过程会更快。

Answers:


358

imagemagick软件包中,使用以下convert命令:

convert *.jpg pictures.pdf

您将获得一个包含当前文件夹中所有jpg的pdf文件。

使用以下方法安装IM:

sudo apt-get install imagemagick

资料来源:stackoverflow

编辑:请注意,如果未编号,则图像将不按特定顺序排列。如果您有10个或更多,则需要给它们命名以filename01.jpg ... filename99.jpg等结尾。为正确排序,必须使用前导零。如果您有100或更多001 ... 999。


1
使用小丑对我不起作用,我不得不使用@Alex的解决方案。
Eusebius 2015年

2
@Eusebius如果通配符对您不起作用,则可以使用oneliner,例如for f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
Elder Geek

1
GrphicMagick用户应该运行gm convert *.jpg pictures.pdf
michaelbn

也许我的jpg文件太大并且太多了,但是这样做几乎立即消耗了太多的RAM,以至于我的16GB系统开始交换。
罗恩·约翰(RonJohn)

8
请注意,此方法现在可能会导致not authorized错误。看到这个相关的问题(和答案)
Jani Uusitalo

31
convert `ls -1v` file.pdf
  • 这将以“自然顺序”(1,2,3 ...)一次列出一个文件,然后进行转换。

1
我尝试了这个,但对我却没有用。许多错误表明它可能与文件名中的空格有关。
年长者怪胎

5
要解决空间问题,请首先执行模式替换:对于* .jpg中的ThisFile; 做MV“ $ ThisFile”“ $ {ThisFile // / _}”> / dev / null 2>&1; d
西蒙·马特斯

20

为我工作(但警告!关闭压缩功能,结果PDF很大!):

convert page1.jpg page2.jpg +compress file.pdf

甚至:

convert -rotate 90 page\*.jpg +compress file.pdf

从ubuntuforums.org,它+compress可以帮助您避免挂起。注意:+ compress关闭压缩。没有+ compress选项,我当时正在使用的计算机似乎“永远挂起”(虽然我并没有永远等待着发现。)。您的里程可能会有所不同!在imagemagick.org选项-compress上的RTFM,如果您遇到缓慢的压缩/挂起问题,可以尝试使用-compress <type>来找出适合您的方法。


13
请勿按上述建议+compressconvert命令中使用该选项!实际上,它会禁用所有压缩功能,使您的PDF比原始JPEG大10倍。只是不指定压缩选项,而是使用convert输入压缩格式(JPEG),在这种情况下,这是大小上最好的选择文件。来源:http

那不直观!谢谢S Minddal。那确实对我有用。我认为当时使用的计算机在执行压缩时出现问题。我会调整答案。
gaoithe 2014年

2
因此,$ converet *.jpg file.pdf与较小的文件大小相比,与+compress参数相比,效果很好
博士学位

18

不幸的是,convert在将其“打包”为PDF之前更改了图像质量。因此,要使质量损失降至最低,最好将原始文件jpg放入PDF中,您需要使用img2pdf

我使用以下命令:

  1. 此命令是要在不损失分辨率或质量的情况下pdf从每个jpg图像中制作一个文件:

    ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {} .pdf

  2. 此命令将pdf页面合并为一个文档:

    pdftk * .pdf cat输出合并.pdf

  3. 最后,我添加了一个OCRed文本层,它不会改变pdf中扫描的质量,因此可以搜索它们:

    pypdfocr合并.pdf

    替代使用pypdfocr

    ocrmypdf Combined.pdf Combined_ocr.pdf


1
很棒的方法!没有压缩的唯一缺点是生成的.pdf文件大小会很高(即比所有图片的总和稍大)。但是如果您要转换的文档确实很重要,则值得!
Gokul NC '18

1
convert失败后显示“尝试执行安全策略'PDF'不允许的操作”,此操作正常。
Matthias Braun

12

使用LibreOffice Writer打开jpg或png文件并导出为PDF。

我希望这是导出pdf的简单方法。


是! LibreOffice是将图像文件导出为PDF的最佳方法。我们完全控制PDF输出,包括页面布局,调整导入文件的大小,可选的页眉和页脚等等。非常感谢user359154的巧妙建议!

8

以下解决方案也依赖ImageMagick的解决方案,convert但由于以下原因而更加复杂:

  • 它允许所有图像具有不同的尺寸,同时保持输出的PDF页面尺寸相同(在下例中为A4)。
  • 它将图像居中在PDF页面上。
  • 它使您可以保证图像边框和PDF页面边框之间的最小距离,从而可以毫无问题地打印PDF。
  • 它不会更改图像数据。(因此,图像质量不会受到影响,PDF文件与图像的文件大小几乎相同,并且您以后可以使用来重新提取原始图像pdfimages -j file.pdf img。)目前,这仅适用于PNG –请参阅下面@dma_k的注释。

说明:

  1. 使用此答案中的脚本将每张图像转换为自己的一页PDF文件,该文件的A4页面大小和5%的边框都围绕着。
  2. 如下将所有一页PDF文件与PDFtk连接:

    pdftk *.pdf cat output out.pdf
    

2
此命令显示(至少在Ubuntu提供的版本16.04)的图像数据受到影响:convert some.jpg -format pdf -compress jpeg generated.pdf ; pdfimages -j generated.pdf generated.pdf ; diff -sq some.jpg generated.pdf-000.jpg
斯特凡纳·古里科

2
我在玩GraphicsMagick时,已经注意到它执行图像压缩。PDF页面上生成的JPEG图像的质量差得多。因此,目前最安全的方法是添加PNG图片-将其正确插入。也请参阅此帖子
dma_k

-3

我使用了http://convert-my-image.com/ 您可以提供的积极的东西(相同的站点,但不同的页面)是图像的存档,并将它们连接到常见的pdf


3
该建议至少具有三个问题:(1)由于将图像上传到网站并下载生成的PDF,速度会很慢;(2)它会将您的数据公开给运行该网站的任何人,可能违反该网站的任何人以及在线的任何人;(3)它不是命令行解决方案。
sampablokuper
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.