blob: cb7d6781547adcac2901b42ebe24b984f74faefd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
{
writeShellScriptBin,
pdftk,
...
}:
writeShellScriptBin "merge-pdfs" ''
set -e
export PATH="$PATH:${pdftk}/bin"
if [ $# -lt 3 ]; then
echo "Usage: $0 <output> <PDFs...>" >&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"
''
|