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…
Reference in New Issue
Block a user