首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多个jpgs转换为单个多页pdf文件?

如何将多个jpgs转换为单个多页pdf文件?
EN

Stack Overflow用户
提问于 2013-06-12 09:01:19
回答 2查看 2.5K关注 0票数 1

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

代码语言:javascript
复制
convert *.jpg output.pdf

但后来我发现其中两幅图片比其他的要高一点:

代码语言:javascript
复制
$ 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有一个更大的高度。我将所有文件批量转换为相同大小:

代码语言:javascript
复制
for x in {a..j}; do convert $x.jpg -gravity center -background white -extent 400x751 $x.png; done;

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

代码语言:javascript
复制
$ 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选项:

代码语言:javascript
复制
convert *.png -density 600 output.pdf

但我还是不明白为什么它在最初的尝试中行不通。

EN

回答 2

Stack Overflow用户

发布于 2019-01-24 17:41:51

我强烈建议使用img2pdf Python程序进行无损转换:

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

示例用法:

代码语言:javascript
复制
img2pdf img1.png img2.jpg -o out.pdf
票数 0
EN

Stack Overflow用户

发布于 2013-06-12 09:09:22

简单地将您的所有图像添加到一个文档文件中一页一页,并将文档保存为pdf。如果您正在使用Windows,您可以使用Microsoft,如果您使用的是Linux,则可以使用Office。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17061547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档