grid and margin
This commit is contained in:
commit
bd457316be
66
pdf-jammer.sh
Executable file
66
pdf-jammer.sh
Executable file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
# _ __ _ _
|
||||
# _ __ __| |/ _| (_) __ _ _ __ ___ _ __ ___ ___ _ __ ___| |__
|
||||
#| '_ \ / _` | |_ _____| |/ _` | '_ ` _ \| '_ ` _ \ / _ \ '__/ __| '_ \
|
||||
#| |_) | (_| | _|_____| | (_| | | | | | | | | | | | __/ | _\__ \ | | |
|
||||
#| .__/ \__,_|_| _/ |\__,_|_| |_| |_|_| |_| |_|\___|_|(_)___/_| |_|
|
||||
#|_| |__/
|
||||
#
|
||||
|
||||
# Ensure necessary binaries
|
||||
for cmd in pdfjam pdfcrop pdfinfo pdfcropmargins; do
|
||||
if ! command -v "$cmd" &>/dev/null; then
|
||||
echo "Please install $cmd to use this script."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Args
|
||||
if [ "$#" -lt 3 ] || [ "$#" -gt 4 ]; then
|
||||
echo "Usage: $0 input.pdf rows columns [margin]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
input_pdf="$1"
|
||||
rows="$2"
|
||||
columns="$3"
|
||||
margin="${4:-0}" # Set margin if provided, else default to 0
|
||||
|
||||
intermediate_pdf=$(mktemp --suffix=.pdf)
|
||||
cropped_output_pdf=$(mktemp --suffix=.pdf)
|
||||
|
||||
# Cleanup temporary files on exit
|
||||
trap 'rm -f "$intermediate_pdf" "$cropped_output_pdf"' EXIT
|
||||
|
||||
# Generate the grid PDF
|
||||
pdfjam \
|
||||
--nup "$columns"x"$rows" \
|
||||
--a4paper \
|
||||
--outfile "$intermediate_pdf" \
|
||||
$(for i in $(seq 1 $((rows * columns))); do echo "$input_pdf"; done)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: pdfjam failed to generate the grid PDF."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Apply margin if provided
|
||||
if [[ "$margin" != 0 ]]; then
|
||||
pdfcropmargins \
|
||||
-o "$cropped_output_pdf" \
|
||||
-s \
|
||||
-p 100 \
|
||||
-a4 \
|
||||
-$margin -$margin -$margin -$margin \
|
||||
"$intermediate_pdf"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: pdfcropmargins failed to apply the margins."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
mv "$intermediate_pdf" "$cropped_output_pdf"
|
||||
fi
|
||||
|
||||
final_pdf="jammed.pdf"
|
||||
mv "$cropped_output_pdf" "$final_pdf"
|
||||
|
||||
echo "Final centered PDF created as $final_pdf"
|
Loading…
x
Reference in New Issue
Block a user