{ writeShellScriptBin, pdftk, ... }: writeShellScriptBin "merge-pdfs" '' set -e export PATH="$PATH:${pdftk}/bin" if [ $# -lt 3 ]; then echo "Usage: $0 " >&2 exit 1 fi OUTPUT="$1" shift WORKDIR="$HOME/vtmp/merge-pdfs.$$" BOOKMARKS="$WORKDIR/bookmarks.txt" FMT="BookmarkBegin BookmarkTitle: %s BookmarkLevel: 1 BookmarkPageNumber: 1 " mkdir "$WORKDIR" N=0 for SOURCE in "$@"; do BASE="$(basename "$SOURCE")" printf "$FMT" "''${BASE%.*}" >"$BOOKMARKS" pdftk "$SOURCE" update_info "$BOOKMARKS" output "$WORKDIR/"$(printf "%04d" $N).pdf N=$((N+1)) done pdftk "$WORKDIR"/*.pdf cat output "$OUTPUT" rm -r "$WORKDIR" ''