35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
IMG=$1
|
|
COUNT_HORIZONTAL=$2
|
|
COUNT_VERTICAL=$3
|
|
LANDSCAPE=${4}
|
|
|
|
panic(){ echo $@; exit 2; }
|
|
|
|
[[ ! -f $IMG ]] && panic "$IMG does not exist"
|
|
|
|
SMALL_SIDE=3000
|
|
LARGE_SIDE=4350
|
|
|
|
# /tmp/out.pdf PDF 567x822 567x822+0+0 16-bit sRGB 980KB 0.010u 0:00.009
|
|
read name type GEOMETRY canvas depth format size other <<< $( identify $IMG )
|
|
IMG_WIDTH=$( cut -d "x" -f 1 <<< $GEOMETRY )
|
|
IMG_HEIGHT=$( cut -d "x" -f 2 <<< $GEOMETRY )
|
|
|
|
TOTAL_WIDTH=$( [[ "$LANDSCAPE" == "1" ]] && echo $LARGE_SIDE || echo $SMALL_SIDE )
|
|
TOTAL_HEIGHT=$( [[ "$LANDSCAPE" == "1" ]] && echo $SMALL_SIDE || echo $LARGE_SIDE )
|
|
|
|
REQ_WIDTH=$(( $TOTAL_WIDTH / $COUNT_HORIZONTAL ))
|
|
REQ_HEIGHT=$(( $TOTAL_HEIGHT / $COUNT_VERTICAL ))
|
|
|
|
DUP=$(( ( $COUNT_HORIZONTAL * $COUNT_VERTICAL ) - 1 ))
|
|
|
|
DATE=$( date +%s )
|
|
OUTPUT_DIR=$( dirname ~+ )/a4
|
|
FILENAME=$( basename $IMG )
|
|
PDF_NAME=${OUTPUT_DIR}/${DATE}_${FILENAME}.pdf
|
|
OUT=$( montage -tile ${COUNT_HORIZONTAL}x${COUNT_VERTICAL} -density 150x150 -units pixelspercentimeter -border 0 -page ${TOTAL_WIDTH}x${TOTAL_HEIGHT} -compress zip -quality 100 "$IMG" -geometry ${REQ_WIDTH}x${REQ_HEIGHT} -duplicate ${DUP},0 ${PDF_NAME} )
|
|
|
|
[ 0 -eq $? ] && echo $PDF_NAME || panic "An error occured... $OUT"
|