我正在使用ImageMagick 6.6.2-6 2011-03-16版本的convert
,并希望使用它从图像生成一个A4 PDF,其中图像将不会被缩放并且居中。
我正在运行以下代码(修改自使用ImageMagick叠加图像):
# generate a 100x100 JPG with just red color
convert -size 100x100 xc:red red.jpg
# generate PDF from JPG
convert -page A4 xc:white red.jpg -gravity center -composite -format pdf out.pdf
...但是实际上什么都没有显示?对于png图像也是同样的情况...
请注意:
- 只有'
convert -page A4 red.jpg out.pdf
'可以工作-但是图像不居中; (-gravity center
导致图像不显示) - 如果图像是png,'
convert -page A4 -gravity center red.png out.pdf
'确实很好用
...然而,我想让convert
直接嵌入JPEG流的内容-因此,我不想先将JPG转换为PNG。
那么,是否可能使用convert
直接在A4 PDF页面中居中JPG图像?
非常感谢您提前的任何答案,
干杯!
编辑2:@John Keyes的答案适用于上面的示例; 图像“小于”PDF大小-但是如果图像更大,例如:
$ convert -size 1228x1706 -background \#f44 -rotate 45 gradient:\#f00-\#fff red.jpg
$ identify red.jpg
red.jpg JPEG 2075x2075 2075x2075+0+0 8-bit DirectClass 120KB 0.000u 0:00.000
如果你不更改大小,只改变图像的-gravity参数,则会失败。然而,结果是这样的:“如果你将-extent更改为50x50,然后调整-gravity,你就会看到变化”,但问题是:你要改变哪一个范围,是图像的范围还是最终PDF的范围?
好吧,事实证明-它是最终PDF的范围...要找到convert
视为其查看的大小,请检查页面:Magick::Geometry-但请注意,“Postscript页面大小规格”(如“A4+43+43>
”)不幸在此上下文中导致convert
崩溃...但至少可以从该页面复制大小的相应数字(595x842);最后,这样做有效:
convert -page A4 -gravity center -resize 595x842 -extent 595x842 red.jpg out.pdf
...实际上,-extent
部分并不是必要的——-resize
部分才是重要的,它可以显示大图像。
然而,问题在于所包含的图像似乎已经被重新采样了,但我只想显示缩放后适合页面的原始JPG流,否则希望将其插入文件中。因此,我认为问题仍然部分存在争议 :)
编辑:相关: