pdftk можно использовать для разделения файла PDF и извлечения номеров страниц закладок.
Чтобы получить номера страниц закладок, сделайте
pdftk in.pdf dump_data
и заставьте ваш скрипт читать номера страниц из вывода.
Тогда используйте
pdftk in.pdf cat A-B output out_A-B.pdf
чтобы перевести страницы из А в Б в out_A-B.pdf.
Сценарий может быть примерно таким:
#!/bin/bash
infile=$1 # input pdf
outputprefix=$2
[ -e "$infile" -a -n "$outputprefix" ] || exit 1 # Invalid args
pagenumbers=( $(pdftk "$infile" dump_data | \
grep '^BookmarkPageNumber: ' | cut -f2 -d' ' | uniq)
end )
for ((i=0; i < ${#pagenumbers[@]} - 1; ++i)); do
a=${pagenumbers[i]} # start page number
b=${pagenumbers[i+1]} # end page number
[ "$b" = "end" ] || b=$[b-1]
pdftk "$infile" cat $a-$b output "${outputprefix}"_$a-$b.pdf
done