我有16个jpg文件,大约为920x1200像素(宽度略有不同,但高度均为1200)。我试图使用以下代码将它们合并成pdf:
convert *.jpg foo.pdf
但是生成的纸张尺寸为1.53x2英寸。如果我传递-page Letter
参数,页面大小最终变成了令人困惑的1.02x1.32英寸。这里出了什么问题?我能找到的所有信息都表明这应该可以工作。我只想要一个由16个信纸大小页面组成的文档。
我有16个jpg文件,大约为920x1200像素(宽度略有不同,但高度均为1200)。我试图使用以下代码将它们合并成pdf:
convert *.jpg foo.pdf
但是生成的纸张尺寸为1.53x2英寸。如果我传递-page Letter
参数,页面大小最终变成了令人困惑的1.02x1.32英寸。这里出了什么问题?我能找到的所有信息都表明这应该可以工作。我只想要一个由16个信纸大小页面组成的文档。
这个问题已经很老了,但我遇到了类似的问题,我认为我找到了解决方法。
关于 -page 选项的文档说“此选项与 -density 一起使用”,但选项之间的关系似乎有点不清楚,可能是因为文档针对的是光栅图像。
通过尝试设置,我发现可以通过组合 -page、-density 和 -units 来控制 pdf 页面大小。-page 的 文档 显示 letter 相当于输入 612 x 792。将 -density 72 与 -units pixelsperinch 组合起来,就可以得到 (612px / 72px) * 1in = 8.5in。
convert *.jpg -units pixelsperinch -density 72 -page letter foo.pdf
可以实现原帖作者想要的功能。
我刚刚用convert file.mng -page letter file.pdf
成功转换了文件。
对于Letter纸张,您需要将大小指定为792x612个PostScript点。因此,请尝试使用以下命令:
convert \
in1.jpg \
in2.jpg \
in3.jpg \
in4.jpg \
in5.jpg \
-gravity center \
-resize 792x612\! \
letter.pdf
在我的Mac OS X电脑上,使用ImageMagick版本6.7.8-3 2012-07-19 Q16可以正常工作:
identify -format "%f[%s] : %W x %H\n" letter.pdf letter.pdf[0] : 792 x 612 letter.pdf[1] : 792 x 612 letter.pdf[2] : 792 x 612 letter.pdf[3] : 792 x 612 letter.pdf[4] : 792 x 612
或者
pdfinfo -f 1 -l 5 letter.pdf Title: _ Producer: ImageMagick 6.7.8-3 2012-07-19 Q16 http://www.imagemagick.org CreationDate: Fri Jul 27 22:28:00 2012 ModDate: Fri Jul 27 22:28:00 2012 Tagged: no Form: none Pages: 5 Encrypted: no Page 1 size: 792 x 612 pts (letter) Page 1 rot: 0 Page 2 size: 792 x 612 pts (letter) Page 2 rot: 0 Page 3 size: 792 x 612 pts (letter) Page 3 rot: 0 Page 4 size: 792 x 612 pts (letter) Page 4 rot: 0 Page 5 size: 792 x 612 pts (letter) Page 5 rot: 0 File size: 178642 bytes Optimized: no PDF version: 1.3
convert -version
来查找) - Kurt Pfeifle-units pixelsperinch
。$ convert *.jpg -units pixelsperinch -page letter foo.pdf
顺便说一下:如果您想使用非标准页面大小,例如A4R
,您必须首先确定以点(或以72dpi给出的像素)为单位的页面大小:
$ paperconf -s -p A4
595.276 841.89
那么对于 A4R
,-page
参数将是 842x595
当你打印它们时,你的打印机可能不会使用超过300 DPI,因此可以使用-density 300x300
将它们转换为该分辨率以节省空间(和打印机处理时间)。
无论输入文件的大小如何(并保留原始纵横比),你也可能希望PDF与纸张大小相匹配,使用像素的纸张大小(并根据需要使用-resize
和-extent
对齐-gravity
)。
您还可以使用-rotate "90>"
将所有内容放在纵向模式中。
所以这是我的建议:
$ convert *.jpg \
-rotate "90>" \
-gravity center \
-units PixelsPerInch -density 300x300 \
-resize 2551x3295 -extent 2551x3295 \
foo.pdf
对于美式信纸,请使用2551x3295
;对于A4纸,请使用2480x3508
。
page
中给出的单位并不是绝对值,而是与density
有关。以英寸为单位的页面大小为page_length_parameter / density
。 - loved.by.Jesusconvert -page 1678x1048 slide*.png presentation.pdf
,其中1678x1048
是您的图像的像素宽度和高度。 - Terry Brown