我已经研究过如何从单页PDF中制作漂亮的缩略图。但是,正如我的下面的代码显示我能为2页以上的PDF做的最好的选择是选择第一页:
$w=320;$h=240;
$fname="my.pdf";
$saveFname = "mypdf.jpg";
$im = new \imagick($fname);
if($im->getNumberImages()>=2){
$im->setiteratorindex(0); //Just do first page
}
$im->thumbnailImage($w,$h,/*bestfit=*/true,/*fill=*/true);
$im->writeImage($saveFname);
我想要做的是并排第1页和第2页,并充分利用可用空间。 (如果可以选择对所有页面或所选页面进行平铺,那就更好了。)
我认为montageImage
可能是答案,但我找不到完整的示例,因此无法确定如何指定要处理的PDF页面。
以上列表的注释:
setiteratorindex()
来选择要处理的页面。答案 0 :(得分:1)
修改版
这可以更简单地做你想做的事情!
montage -density 288 input.pdf[0,1] -resize 50% -mode Concatenate -tile 2x thumb.jpg
原始解决方案
我不确定如何在php
中执行此操作,但这是一个脚本,可以在ImageMagick的命令行执行我想要的操作:
#!/bin/bash
PDF=$1
TMPA="TMPA-$$.JPG"
TMPB="TMPB-$$.JPG"
out=1
#
# Get number of pages in PDF
NUMPAGES=$(identify "$PDF" | wc -l)
echo $PDF has $NUMPAGES pages
#
# Iterate over all pages, two at a time
for ((p=0;p<$NUMPAGES;))
do
convert -density 288 a.pdf[$p] -alpha remove -resize 50% "$TMPA"
((p++))
convert -density 288 a.pdf[$p] -alpha remove -resize 50% "$TMPB"
((p++))
convert +append "$TMPA" "$TMPB" thumb${out}.jpg
((out++))
rm "$TMPA" "$TMPB" 2> /dev/null
done
另存为thumbnailer
并使用如下:
chmod +x thumbnailer
./thumbnailer xyz.pdf
它产生了一个&#34;两个&#34;缩略图文件thumb{1..n/2}.jpg
希望有一些提示可以使用什么参数以及在`php中调用哪些函数。