创建PDF,每一页都是图像和SVG文件的合并。

问题描述 投票:0回答:1

我有一个图像序列1.jpg,2.jpg,......。, 10.jpg和SVG的序列1.svg, 2.svg, .... , 10.svg的序列。能否将它们转化为一个单一的PDF文档,其中第i'th页是i.svg在i.jpg上的组合?也就是说,我想把i.svg放在i.jpg之上,作为文档的第i'th页。

我知道pdfTk有时会对这样的任务有所帮助,但我无法找到实现这个目标的方法。我还尝试了ImageMagick,使用下面的命令。

composite -compose atop -geometry "20%+10%" -gravity southwest "1.svg" "2.jpg" "output.pdf"

但输出结果是扭曲的

pdf svg automation imagemagick pdftk
1个回答
0
投票

你应该可以在Imagemagick中使用-layers composite来做到这一点,如下所示。

convert -density XX *.svg null: *.jpg -compose atop -layers composite result.pdf

你可以用svg文件的列表代替*.svg,用jpg文件的列表代替*.jpg。通配符*将按照字母顺序得到当前目录下的所有文件。null:分隔符对于-layers复合很重要。 设置SVG所需的密度来控制栅格化SVG文件的大小。

你可以在-compose atop之前添加-geometry,但它不能以百分比为单位工作。你需要以像素来计算。如果您需要每张图片都有相同的百分比偏移,那么您需要使用Imagemagick 7,这样您就可以进行以下操作。

magick -density XX *.svg null: *.jpg -geometry "+%[fx:20*w/100]+%[fx:10*h/100]" -compose atop -layers composite result.pdf

不幸的是,Imagemagick 6不支持该功能。

© www.soinside.com 2019 - 2024. All rights reserved.