commit c80b253c0608a1c03bae6b6f046bfe68cd908396 equwal <13551856+equwal@users.noreply.github.com> 2026-10-04 23:02:59 -0700 group4ify: POSIX sh, trap etc.
group4ify | 24 +++++++++++------------- group4ify-aux | 1 + 2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/group4ify b/group4ify index 3674ca6..5284cfc 100755 --- a/group4ify +++ b/group4ify @@ -1,15 +1,13 @@ -#!/bin/bash -TEMP="$(mktemp)" -[ -e "$TEMP" ] && rm "$TEMP" -mkdir "$TEMP" -BASE="$(basename "$1")" -cp "$1" "$TEMP" +#!/bin/sh +# Recompress every page of a scanned PDF as bilevel CCITT Group 4 (via group4ify-aux). +# Usage: group4ify FILE.pdf (writes ./FILE.pdf-group4.pdf) +set -e +TEMP="$(mktemp -d)" +trap 'rm -r "$TEMP"' EXIT +OUT="$PWD/$(basename "$1")-group4.pdf" +pdfseparate "$1" "$TEMP"/%d.pdf cd "$TEMP" -pdfseparate "$PWD"/"$1" %d.pdf -rm "$BASE" -find . -name '*.pdf' -print0 | grep -z -v group4 | xargs -0 -L1 group4ify-aux -cat <(find . -name '*-group4.pdf' | sed 's:^./::' | sort -h | sed 's:^\|$:":g') <(echo "$BASE"-group4.pdf) | xargs pdfunite -cd - -mv "$TEMP"/"$BASE"-group4.pdf . -rm -r "$TEMP" +for p in *.pdf; do group4ify-aux "$p"; done +# shellcheck disable=SC2046 # page files are N.pdf-group4.pdf: no spaces +pdfunite $(printf '%s\n' *-group4.pdf | sort -n) "$OUT" diff --git a/group4ify-aux b/group4ify-aux index 02daa1b..a8faf3a 100755 --- a/group4ify-aux +++ b/group4ify-aux @@ -1,2 +1,3 @@ #!/bin/sh +# Usage: group4ify-aux FILE.pdf (writes FILE.pdf-group4.pdf, bilevel CCITT Group 4 at 300 dpi) convert -density 300 -compress Group4 -type bilevel "$1" "$1"-group4.pdf