Extrair slides completos de uma apresentação de slides PDF

3

Arquivos PDF de apresentações de slides distribuídos por meus professores geralmente contêm um grande número de páginas, porque cada etapa da animação resulta em uma nova página (às vezes 20 páginas por slide).

Isso é bom se alguém quiser ver a apresentação de slides em uma tela. Mas gostaria de imprimir os slides e, para economizar papel, eu preferiria imprimir apenas os slides completos (depois que todas as etapas de animação ocorressem).

A estrutura desses PDFs é a seguinte:

Page: 1/12, slide: 1
Page: 2/12, slide: 1
Page: 3/12, slide: 1 -> complete first slide (this is what I want to print)
Page: 4/12, slide: 2
...

Percebi que o Evince realmente acompanha o slide em que estamos. Ele exibe o número do slide ao lado do número da página atual (como acima). Então, aparentemente, os números dos slides são salvos no arquivo PDF e deve ser possível identificar qual é a última página de um slide e imprimir apenas esse.

Então, minha pergunta é: Existe uma maneira de extrair a última página de cada slide (a última página que usa o mesmo número de slide) usando ferramentas como pdftk ou GS ou similar?

Nota: acho que esse problema deve ser bastante comum, mas não consegui encontrar nenhum post semelhante. Peço desculpas se isso é uma duplicata.

    
por kassiopeia 18.05.2015 / 12:20

1 resposta

1

Aqui está um script para fazer isso, que funciona no exemplo do comentário de Marco. Faz uso de pdftk .

#!/bin/sh
PAGES=$(pdftk $1 dump_data |                      
    grep PageLabelNewIndex |
    cut -d' ' -f2 |                                                         
    xargs -n1 expr -1 + |                                                   
    tail -n+2 |                                                             
    tr '\n' ' ');                                                           
# Add last page                                                                 
PAGES="${PAGES} $(pdftk $1 dump_data |                                          
    grep NumberOfPages |                                                    
    cut -d' ' -f2)";                                                        

pdftk $1 cat ${PAGES} output $2

Dê o arquivo de entrada como o primeiro parâmetro e um nome de arquivo de saída como o segundo parâmetro.

    
por 19.05.2015 / 23:23