【问题标题】:How can I convert several jpgs into single multi-page pdf file?如何将多个 jpg 转换为单个多页 pdf 文件?
【发布时间】:2013-06-08 07:58:18
【问题描述】:

我有几个.jpg 文件,按从a.jpgj.jpg 的顺序命名。我尝试将它们简单地连接到单个 pdf 文件中:

convert *.jpg output.pdf

但后来我看到其中两个图像比其他图像高一点:

$ echo *.jpg | xargs -n1 identify
a.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 15.8KB 0.000u 0:00.000
b.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 18.7KB 0.000u 0:00.000
c.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 33.5KB 0.000u 0:00.000
d.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 24.2KB 0.000u 0:00.000
e.jpg JPEG 400x751 400x751+0+0 8-bit DirectClass 39.4KB 0.000u 0:00.000
f.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 31.6KB 0.000u 0:00.000
g.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 37.1KB 0.000u 0:00.000
h.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 32KB 0.000u 0:00.000
i.jpg JPEG 400x720 400x720+0+0 8-bit DirectClass 27.6KB 0.000u 0:00.000
j.jpg JPEG 400x567 400x567+0+0 8-bit DirectClass 5.65KB 0.000u 0:00.000

如您所见,e.jpgi.jpg 的高度更大。我将所有文件批量转换为相同大小:

for x in {a..j}; do convert $x.jpg -gravity center -background white -extent 400x751 $x.png; done;

现在所有生成的.png 文件都具有相同的大小:

$ echo *.png | xargs -n1 identify
a.png PNG 400x751 400x751+0+0 8-bit DirectClass 62.3KB 0.000u 0:00.000
b.png PNG 400x751 400x751+0+0 8-bit DirectClass 74.9KB 0.000u 0:00.000
c.png PNG 400x751 400x751+0+0 8-bit DirectClass 148KB 0.000u 0:00.000
d.png PNG 400x751 400x751+0+0 8-bit DirectClass 85.5KB 0.000u 0:00.000
e.png PNG 400x751 400x751+0+0 8-bit DirectClass 175KB 0.000u 0:00.000
f.png PNG 400x751 400x751+0+0 8-bit DirectClass 124KB 0.000u 0:00.000
g.png PNG 400x751 400x751+0+0 8-bit DirectClass 162KB 0.000u 0:00.000
h.png PNG 400x751 400x751+0+0 8-bit DirectClass 118KB 0.000u 0:00.000
i.png PNG 400x751 400x751+0+0 8-bit DirectClass 113KB 0.000u 0:00.000
j.png PNG 400x751 400x751+0+0 8-bit DirectClass 15.7KB 0.000u 0:00.000

但是,将它们批处理到 pdf 文件 (convert *.png output.pdf) 仍然会导致这两个页面比其他页面大得多。我做错了什么?

编辑:

似乎我找到了解决方案 - 我需要在组装 pdf 时指定 -density 选项:

convert *.png -density 600 output.pdf

但是,我仍然不明白为什么它在最初的尝试中不起作用。

【问题讨论】:

    标签: pdf imagemagick png jpeg


    【解决方案1】:

    我强烈推荐img2pdf Python CLI 程序进行无损转换:

    https://gitlab.mister-muffin.de/josch/img2pdf

    示例用法:

    img2pdf img1.png img2.jpg -o out.pdf
    

    【讨论】:

      【解决方案2】:

      简单地将所有图像逐页添加到 doc 文件中,并将 doc 保存为 pdf。如果您使用的是 Windows,则可以使用 Microsoft Word;如果您使用的是 Linux,则可以使用 Open Office。

      【讨论】:

      • 不,这不好。这只是一个例子——如果我有数百张这样的图像,手动完成所有这些将花费大量时间。我需要一种自动方式。
      猜你喜欢
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2018-01-25
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      相关资源
      最近更新 更多