我有许多相同大小的PNG文件,我想将其转换为单个PDF,将3张PNG图像转换为A4页面(例如30张图像= 1 x 10页PDF)。
图像都是1311 x 537像素,我想将它们叠加到A4页面上。文件名没有方案,但我不介意它们在PDF中出现的顺序。
有人可以建议使用ImageMagick(在Windows 10上)实现此目的的最佳方法吗?
答案 0 :(得分:1)
最基本的,没有任何Powershell或BATCH命令,你可以将3张图像一个堆叠在另一个上面,没有空格,并调整为A4页面,如下所示:
convert image1.jpg image2.jpg image3.jpg -append -resize 2480x3508 page-01.png
convert image4.jpg image5.jpg image6.jpg -append -resize 2480x3508 page-02.png
...
...
然后将所有页面组合成这样的PDF:
convert page-* result.pdf
如果你有更多的时间和耐心,你可以将图像分开一点,或者自动化这个过程,但这可能不值得。
如果你想用10像素来区分图像,你可以在它们之间创建透明的间隔物,如下所示:
convert -background none -size 10x10 image1.png xc:none image2.png xc:none image3.png -append -resize 2480x3508 page-01.png
如果有更多Windows-y( TM )的人看到这个,并且想要转换,你可以在Linux / Unix上这样做:
生成包含PDF中所需文件名的文件,3到一行:
ls image*.jpg | xargs -n3 > files.txt
给出:
i-1.png i-10.png i-11.png
i-12.png i-13.png i-14.png
i-15.png i-16.png i-17.png
i-18.png i-19.png i-2.png
i-20.png i-21.png i-22.png
i-23.png i-24.png i-25.png
i-26.png i-27.png i-28.png
i-29.png i-3.png i-30.png
i-4.png i-5.png i-6.png
i-7.png i-8.png i-9.png
我认为你会在Windows上使用DIR /B | something
。
然后逐行阅读该文件并制作A4页面,将其发送至stdout
,以便最终convert
汇总成PDF:
while read names ; do
convert $names -append -resize 2470x3500 +repage miff:-
done < files.txt | convert miff:- result.pdf
我认为你会在Windows上使用FOR /F ...
来做这件事,就像这个混乱:
FOR /F %%G IN (files.txt) DO (
convert %%G -append -resize 2470x3500 +repage miff:-
) | convert miff:- result.pdf