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

lov*_*eed 323 command-line pdf conversion jpeg

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

如何才能做到这一点?

我更喜欢使用命令行,因为这个过程会更快。

ros*_*sch 432

imagemagick包中,使用convert命令:

convert *.jpg -auto-orient pictures.pdf
Run Code Online (Sandbox Code Playgroud)

您将获得一个包含当前文件夹中所有 jpg 的 pdf。该选项-auto-orient读取图像的 EXIF 数据以旋转图像。

安装 IM:

sudo apt-get install imagemagick
Run Code Online (Sandbox Code Playgroud)

来源:stackoverflow imagemagick 选项

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

  • 请注意,此方法现在可能会导致“未授权”错误;[请参阅此相关问题(和答案)](https://askubuntu.com/questions/1081895/trouble-with-batch-conversion-of-png-to-pdf-using-convert)。 (25认同)
  • @Eusebius 如果通配符不适用于您的转换,您可以使用像 `for f in *.jpg; 这样的单行符;做转换 "$f" "$f.pdf"; 完毕; pdftk *.pdf cat 输出 final.pdf` (3认同)
  • 使用小丑对我不起作用,我不得不使用@Alex 的解决方案。 (2认同)
  • `GrphicMagick` 用户应该运行 `gm convert *.jpg Pictures.pdf` (2认同)
  • 也许我的 jpg 文件太大而且数量太多,但这样做几乎立即消耗了太多 RAM,以至于我的 16GB 系统开始交换。 (2认同)

Edu*_*scu 85

不幸的是,convert在“打包”到 PDF 之前改变了图像质量。因此,有质量的损失最小,不如把原来的jpg,(作品有.png)到PDF,您需要使用img2pdf

我使用这些命令:

更短的单衬解决方案img2pdf按照评论中的建议使用**

  1. 制作PDF

    img2pdf *.jp* --output combined.pdf

  2. (可选)OCR 输出 PDF

    ocrmypdf combined.pdf combined_ocr.pdf


以下是需要更多命令和更多工具的原始答案命令:


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

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

  2. 此命令会将pdf页面连接到一个文档中:

    pdftk *.pdf cat output combined.pdf

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

    pypdfocr combined.pdf

使用的替代方法pypdfocr

`ocrmypdf combined.pdf combined_ocr.pdf`  
Run Code Online (Sandbox Code Playgroud)

  • 在“convert”因“尝试执行安全策略‘PDF’不允许的操作”而失败后,此方法工作正常。 (4认同)
  • `img2pdf` 支持同时输入多个 JPEG。请参阅其联机帮助页中的示例。 (3认同)
  • img2pdf *.jpeg --output jpegsas.pdf 对我有用,没有管道或多个步骤,订购是正确的。虽然我不关心 ocr,但可以轻松添加。谢谢! (3认同)
  • @MatthiasBraun 在这里解决 https://askubuntu.com/questions/1081695/error-during-converting-jpg-to-pdf (3认同)
  • 这就是窍门!特别是结合[jpegoptim](https://www.omgubuntu.co.uk/2016/03/how-to-optimize-jpeg-command-line-linux)首先控制输入图片的大小,例如: `jpegoptim --overwrite --size=1000k *.jp*` (2认同)

小智 37

convert `ls -1v` file.pdf
Run Code Online (Sandbox Code Playgroud)
  • 此 ls 将按“自然顺序”(1,2,3...)一次列出一个文件并继续转换。

  • 为了解决空格问题,首先执行模式替换:对于 *.jpg 中的 ThisFile;do mv "$ThisFile" "${ThisFile// /_}" >/dev/null 2>&1; d (6认同)

gao*_*the 22

为我工作(但警告!关闭压缩,生成的 PDF 会很大!):

convert page1.jpg page2.jpg +compress file.pdf
Run Code Online (Sandbox Code Playgroud)

甚至:

convert -rotate 90 page\*.jpg +compress file.pdf
Run Code Online (Sandbox Code Playgroud)

从 ubuntuforums.org+compress可以帮助它不挂起。注意:+compress 关闭压缩。我当时正在使用的机器似乎挂了?永远?(虽然我没有等太久才发现。)没有 +compress 选项。您的里程可能会有很大差异!imagemagick.org 上的RTFM选项 -compress,如果您有缓慢的压缩/挂起问题,可以尝试使用 -compress < type> 以找出适合您的方法。

  • 不要像上面建议的那样在 `convert` 命令中使用 `+compress` 选项!它实际上禁用了所有压缩,使您的 PDF 比原始 JPEG 大 10 倍。只是不要指定压缩选项,并且 `convert` 将使用输入压缩格式 (JPEG),在这种情况下,这是文件大小方面的最佳选项。来源:[http://www.imagemagick.org/script/command-line-options.php#compress](http://www.imagemagick.org/script/command-line-options.php#compress) (15认同)
  • 所以`$ converet *.jpg file.pdf` 与`+compress` 参数相比,在较小的文件大小下效果很好 (3认同)

小智 12

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

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


tob*_*ora 10

我很好奇没有人指出 pdfjam,这是将图像/pdf 合并为 pdf 的一种超级有效的方法:

pdfjam --a4paper *.jpg
Run Code Online (Sandbox Code Playgroud)

将为您创建所有.jpg文件的A4 格式的 pdf ,通常以 a-pdfjam.pdf结尾。要强制使用特定的输出名称,您可以--outfile <your output>选择!

据我所知,文件没有重新编码,与convert.

要安装 pdfjam,我不确定最有效的方法是什么(LaTeX 会自动提供),但您可以尝试:

sudo apt install pdfjam
Run Code Online (Sandbox Code Playgroud)

或者可能

sudo apt install texlive-extra-utils
Run Code Online (Sandbox Code Playgroud)


tan*_*ius 7

下面的解决方案也依赖于 ImageMagick 的,convert但有点复杂,因为:

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

指示:

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

    pdftk *.pdf cat output out.pdf
    
    Run Code Online (Sandbox Code Playgroud)

  • 此命令显示(至少在 Ubuntu 16.04 上提供的版本中)图像数据 * 受到影响: `convert some.jpg -format pdf -compress jpeggenerated.pdf ; pdfimages -j 生成.pdf 生成.pdf ; diff -sq some.jpg生成的.pdf-000.jpg` (2认同)
  • 我在玩 GraphicsMagick,我注意到*它执行图像重新压缩*。PDF 页面上生成的 JPEG 图像的质量要差得多。所以目前最安全的方法是添加 PNG 图像——它们被正确插入。另请参阅 [这篇文章](https://askubuntu.com/a/473674/164142)。 (2认同)