Parece não haver um utilitário para remover páginas em branco de PDFs, mas podemos criar um histograma de cores usando o comando convert
do imagemagick. Os slides em branco terão apenas uma entrada que pode ser detectada com wc
. Quando tivermos uma lista de páginas não em branco, poderemos inserir isso em pdftk
.
Note que imagemagick contém páginas a partir de 0, então precisamos nos ajustar para isso. Podemos usar um valor baixo no sinalizador -density
para melhorar o desempenho (embora muito baixo pareça resultar em segmentação de imagem do imagemagick).
Se chamarmos o script a seguir pdf_rm_blank.sh
, a execução de pdf_rm_blank.sh A
criará A.rm.pdf
de 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