[英]Make thumbnail of multiple pages from PDF wiith imagemagick
我已經研究出如何從單頁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()
來選擇要處理的頁面。 修改版本
這可能會更簡單地完成您想要的操作!
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
它以縮略圖文件thumb{1..n/2}.jpg
產生PDF的“雙向”輸出。
希望那里有一些提示,涉及使用哪些參數以及在php中調用哪些函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.