Como configuro um serviço OSX para excluir a primeira página de um PDF?

4

Freqüentemente recebo arquivos PDF em que a primeira página está vazia ou é apenas uma página de capa para a qual não tenho uso. Você pode sugerir uma maneira rápida e eficiente (Applescript, Service ou ???) para eu excluir apenas a primeira página e salvar o arquivo?

Se isso puder ser automatizado via Preview ou Adobe Acrobat Professional, isso seria o ideal.

Alguma idéia?

    
por Maiasaura 02.02.2012 / 08:24

4 respostas

4

Você pode fazer isso usando um fluxo de trabalho Automator . É um pouco mais complexo que a maioria, por isso tenha cuidado ao implementá-lo.

Esta postagem contém duas versões: uma é menor e armazena a saída como Processed PDF File.pdf na área de trabalho, a outra é mais longa e armazena o arquivo como (Edited) InputFileName.pdf no mesmo diretório. As etapas necessárias apenas para a versão mais longa são marcadas com (opcional) .

Abra o Automator e selecione para criar um novo Serviço que receba arquivos PDF como entrada em Qualquer aplicativo .

  1. (opcional) Adicione uma ação Definir valor da variável e nomeie a variável FilePath .
  2. (opcional) Adicione uma ação Executar AppleScript e use o seguinte código de script para obter o nome da pasta em que o arquivo está localizado:

    on run {input, parameters}
        tell application "Finder" to return (container of first item of input) as alias
    end run
    
  3. (opcional) Adicione uma ação Definir valor da variável e nomeie a variável Folder .

  4. (opcional) Adicione uma ação > Obter valor da variável e retorne a variável FilePath . Ignore a entrada desta ação em suas Opções .
  5. (opcional) Adicione uma ação Executar Script Shell e passe a entrada como argumentos . Use o seguinte script para extrair o nome de base do arquivo:

    echo "$( basename "$1" )"
    
  6. (opcional) Adicione uma ação Definir valor da variável e nomeie a variável FileName .

  7. (opcional) Adicione uma ação > Obter valor da variável e nomeie a variável FilePath . Ignore a entrada desta ação em suas Opções .

  8. Adicione uma ação PDF to Images , salvando a saída no Desktop ou em qualquer pasta que possa conter arquivos temporários. Nomeie-os como quiser.

  9. Adicione uma ação Definir valor da variável , para sabermos mais tarde quais arquivos temporários serão excluídos. Nomeie a variável TempFiles .
  10. Adicione uma ação Executar AppleScript e use o seguinte código de script para filtrar a lista de arquivos temporários (é aqui que removemos a primeira página):

    on run {input, parameters}
        return rest of input
    end run
    
  11. Adicione uma ação Combine PDF pages para reunir as peças novamente, adicionando páginas .

  12. Use a ação Itens do localizador de movimento para mover o arquivo resultante (o PDF recombinado) para a área de trabalho ou qualquer pasta onde desejar. Se você decidiu calcular a pasta pai do arquivo de entrada, é aqui que você arrasta & Solte uma referência à variável Folder .
  13. A ação Renomear itens do Finder pode fornecer a esses arquivos um nome de arquivo melhor do que, por exemplo, zOpY3O.pdf , que é o nome do arquivo atribuído automaticamente para o arquivo PDF combinado. Use, e. Nome Single Item e dê a ele um nome de base de Processed PDF File . Se você optou por usar a variante mais longa, arraste FileName da lista de variáveis para o campo de texto e adicione (Edited) antes dela. Agora estamos basicamente pronto, só precisamos limpar.
  14. Adicione a ação Obter valor da variável e obtenha o valor de TempFiles . Ignore a entrada desta ação em suas Opções .
  15. Adicione uma ação Mover itens do localizador para a lixeira para remover os arquivos de página única temporários.

Veja uma captura de tela da versão mais recente do fluxo de trabalho:

enter image description here

    
por 02.02.2012 / 11:57
2

Usando as ferramentas de PDF de linha de comando mencionadas acima, consegui compilar um fluxo de trabalho que faz o seguinte:

  1. Pegue um PDF de entrada (ou PDFs) e gere um novo arquivo menos a primeira página
  2. Mova o PDF original para o lixo
  3. Renomeie o novo arquivo para corresponder ao arquivo original

Primeiro, instalei as ferramentas de PDF conforme as instruções. A ferramenta chave neste caso é pdfsplit.

No Automator, criei um novo serviço para receber arquivos PDF selecionados no Finder.

Eu adicionei a ação "Executar Shell Script", com o shell como "/ bin / bash" e "passar entrada" definido como "como argumentos". Eu então escrevi o seguinte script simples:

for f in "$@"
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

Eu adicionei uma ação "Mover itens do Finder para a lixeira" para o arquivo original e uma ação "Substituir texto" para remover a extensão .tmp do novo arquivo.

Para executar o processo com uma entrada de pasta, o script seria algo como:

cd "$@"
for f in *pdf
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

Suponho que eu poderia ter feito tudo no script de shell, incluindo a remoção e renomeação. Mas o comando rm pode ser perigoso, e prefiro mover o arquivo original para a lixeira.

O script pode ser modificado para fazer mais do que simplesmente remover um número x de páginas. Eu desenvolvi um programa semelhante para o lote de culturas e combinar PDFs, por exemplo. Confira o manual no pdfsplit e as ferramentas que o acompanham para mais informações.

    
por 22.02.2013 / 23:20
0

Alguém em outro fórum desenvolveu alguns ferramentas de PDF da linha de comando , incluindo uma que exclui páginas. Parecia ser relativamente fácil. O único soluço possível pode ser como isso funciona com o seu fluxo de trabalho. Pela sua descrição, parece que você trabalha com o PDF aberto e essas ferramentas parecem funcionar (melhor) com um arquivo fechado.

    
por 21.01.2013 / 00:52
0

Apenas para adicionar a resposta fornecida por Joseph Yannielli, para aqueles que decidirem executar o shell script, será mais fácil incluir comandos para excluir e renomear o arquivo no script, em vez de adicionar ações separadas via Automator:

for f in "$@"
do
    /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
    rm "$f"
    mv "$f".tmp "$f"
done

Sobre a questão de instalar ferramentas de linha de comando em PDF, isso pode ser feito convenientemente com o uso do Homebrew :

brew install pdf-tools
    
por 27.12.2014 / 11:59