Uma solução é dividir a geração de imagens e a conversão de PDF. Primeiro converta as imagens via convert
para A4 a 300dpi (ou seja, 3508x2479), depois use sam2p para convertê-las em PDF e, em seguida, use sam2p_pdf_scale para convertê-las em A4.
convert -rotate "90>" -scale 3508x2479 -border 64x64 -bordercolor white in.png out.png
sam2p out.png out.pdf
sam2p_pdf_scale 595 842 out.pdf
Editar: um script mais completo:
#!/bin/sh
A4_WIDTH=2479
A4_HEIGHT=3508
H_MARGIN=64
V_MARGIN=64
WIDTH=$((${A4_WIDTH} - ${H_MARGIN} * 2))
HEIGHT=$((${A4_HEIGHT} - ${V_MARGIN} * 2))
for i in "$@"; do
TMP="/tmp/$(uuidgen).png"
echo "$i"
convert \
-rotate "90>" \
-scale "${WIDTH}x${HEIGHT}" \
-border "${H_MARGIN}x${V_MARGIN}" -bordercolor white \
-gravity center \
-extent "${A4_WIDTH}x${A4_HEIGHT}" \
-gravity center \
-font helvetica -pointsize 80 \
-fill white -draw \
"push graphic-context
translate $((${A4_WIDTH}/2 - 160)), 0
rotate 90
text -2,-2 '$i'
text -2,2 '$i'
text 2,-2 '$i'
text 2,2 '$i'
pop graphic-context
" \
-fill black -draw \
"push graphic-context
translate $((${A4_WIDTH}/2 - 160)), 0
rotate 90
text 0,0 '$i'
pop graphic-context
" \
"$i" "$TMP"
sam2p "$TMP" "${i}.pdf"
sam2p_pdf_scale 595 842 "${i}.pdf"
done
# EOF #