Похоже, не существует утилиты для удаления пустых страниц из PDF-файлов, но мы можем создать гистограмму цветов, используя команду convert
из imagemagick. Пустые слайды будут иметь только одну запись, которая может быть обнаружена с помощью wc
. Как только у нас есть список непустых страниц, мы можем передать его в pdftk
.
Обратите внимание, что imagemagick нумерует страницы, начиная с 0, поэтому нам нужно это настроить. Мы можем использовать низкое значение в флаге -density
повышения производительности (хотя слишком низкое значение, похоже, приводит к возникновению ошибки в imagemagick ).
Если мы вызовем следующий скрипт pdf_rm_blank.sh
, при запуске pdf_rm_blank.sh A
будет создан файл A.rm.pdf
из A.pdf
#!/bin/sh
IN="$1"
PAGES=$(pdfinfo $IN.pdf | grep ^Pages: | tr -dc '0-9')
non_blank() {
for i in $(seq 1 $PAGES)
do
if [ $(convert -density 35 "$IN.pdf[$((i-1))]" -define histogram:unique-colors=true -format %c histogram:info:- | wc -l) -ne 1 ]
then
echo $i
#echo $i 1>&2
fi
echo -n . 1>&2
done | tee out.tmp
echo 1>&2
}
set +x
pdftk $IN.pdf cat $(non_blank) output $IN.rm.pdf