所以我有一个PDF文件,我正在使用Automator从每张幻灯片生成JPG文件。然后我想循环遍历这些图像并从中创建并排的照片。所以第1页和第2页将创建一个图像,然后是第3页和第4页,依此类推......到目前为止,我有一个Applescript动作,输入是所有图像文件:
on run {input, parameters}
set selectedFiles to {}
repeat with i in input
copy (POSIX path of i) to end of selectedFiles
end repeat
return selectedFiles
end run
我想要做的功能是这个,这是一个ImageMagick函数,两个合并到彼此相邻的图像:
do shell script "convert " +append 01.jpg 02.jpg 01&2.jpg
如何在上面的Applescript中添加此功能?
或者使用Shell脚本可能更容易?
答案 0 :(得分:0)
我有点匆忙,所以不是我最好的代码,但你可以在bash
这样做:
#!/bin/bash
# pdfsheets
#
# Passs the name of a PDF as parameter and get it as a bunch of double-page spreads called "sheet-0.jpg" ... "sheet-n.jpg"
#
# Pick up parameter
pdf=$1
echo "Processing document: $pdf"
# Split document into individual pages each as JPEG
convert "$pdf" page-$$-%03d.jpg
# Get names of pages into array and see how many we got
pages=( $(ls page-$$-*.jpg) )
npages=${#pages[@]}
echo DEBUG:npages:$npages
# Check if odd number of pages - synthesize empty white one at end if odd
if [ $((npages%2)) -ne 0 ]; then
lastpage=${pages[@]:(-1)}
echo DEBUG:lastpage:$lastpage
newlast=$(printf "page-$$-%03d.jpg" $npages)
convert "$lastpage" -threshold -1 $newlast
pages=( $(ls page-$$-*.jpg) )
npages=${#pages[@]}
fi
s=0
for ((i=0;i<npages;i+=2)) do
a=${pages[i]}
b=${pages[((i+1))]}
out=$(printf "sheet-%d.jpg" $s)
echo Converting $a and $b to $out
convert $a $b +append $out
((s++))
done
像这样运行并获得如下输出:
./pdfsheets document.pdf
Processing document: document.pdf
DEBUG:npages:5
DEBUG:lastpage:page-49169-004.jpg
Converting page-49169-000.jpg and page-49169-001.jpg to sheet-0.jpg
Converting page-49169-002.jpg and page-49169-003.jpg to sheet-1.jpg
Converting page-49169-004.jpg and page-49169-005.jpg to sheet-2.jpg