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

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

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

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

Alguma ideia?

Responder1

Você pode fazer isso usando umAutomatizadorfluxo de trabalho. É um pouco mais complexo que a maioria, então tome cuidado ao implementá-lo.

Esta postagem contémdoisversões: uma é mais curta e armazena a saída como Processed PDF File.pdfna área de trabalho, a outra é mais longa e armazena o arquivo como(Edited)InputFileName.pdfno mesmo diretório. As etapas necessárias apenas para a versão mais longa estão marcadas(opcional).

AbrirAutomatizadore selecione para criar um novoServiçoque recebeArquivos PDFcomo entrada emQualquer aplicativo.

  1. (opcional)Adicione umDefinir valor da variávelação e nomeie a variável FilePath.
  2. (opcional)Adicione umExecute o AppleScriptaction 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 umDefinir valor da variávelação e nomeie a variável Folder.

  4. (opcional)Adicione umObtenha o valor da variávelação e retornar a variável FilePath. Ignore a entrada desta ação em seuOpções.
  5. (opcional)Adicione umExecute o ShellScriptação e passagem de entradacomo argumentos. Use o seguinte script para extrair o nome base do arquivo:

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

  7. (opcional)Adicione umObtenha o valor da variávelação e nomeie a variável FilePath. Ignore a entrada desta ação em seuOpções.

  8. Adicione umPDF para imagensação, salvando a saída na área de trabalho ou em qualquer pasta que possa conter arquivos temporários. Nomeie-os como quiser.

  9. Adicione umDefinir valor da variávelação, para sabermos mais tarde quais arquivos temporários excluir. Dê um nome à variável TempFiles.
  10. Adicione umExecute o AppleScriptação 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 umCombine páginas PDFação para juntar as peças novamente, poranexando páginas.

  12. Use oMover itens do Finderação para mover o arquivo resultante (o PDF recombinado) para a área de trabalho ou para qualquer pasta onde você desejar. Se você decidiu calcular a pasta pai do arquivo de entrada, é aqui que você arrasta e solta uma referência à Foldervariável.
  13. ORenomear itens do FinderA ação pode dar a esses arquivos um nome de arquivo melhor do que, por exemplo, zOpY3O.pdf, que é o nome de arquivo atribuído automaticamente para o arquivo PDF combinado. Usar, por exemploNomear item únicoe dê a ele um nome base de Processed PDF File. Se você optou por usar a variante mais longa, arraste FileNameda lista de variáveis ​​para o campo de texto e adicione (Edited)logo antes dele. Agora basicamente terminamos, só precisamos limpar.
  14. Adicione oObtenha o valor da variávelação e obtenha o valor de TempFiles. Ignore a entrada desta ação em seuOpções.
  15. Adicione umMover itens do Finder para a lixeiraação para remover os arquivos temporários de página única.

Aqui está uma captura de tela da versão mais longa finalizada do fluxo de trabalho:

insira a descrição da imagem aqui

Responder2

Usando o mencionadoferramentas PDF de linha de comando, 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 a lixeira
  3. Renomeie o novo arquivo para corresponder ao arquivo original

Primeiro instalei as ferramentas PDF conforme as instruções. A ferramenta principal neste caso é o pdfsplit.

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

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

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

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 poderia ter feito tudo no shell script, incluindo remover e renomear. 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. Desenvolvi um programa semelhante para cortar em lote e combinar PDFs, por exemplo. Confira o manual do pdfsplit e as ferramentas que o acompanham para obter mais informações.

Responder3

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

Responder4

Apenas para complementar a resposta fornecida por Joseph Yannielli, para aqueles que decidem executar o shell script pode 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

Quanto à instalação de ferramentas PDF de linha de comando, isso pode ser feito convenientemente com o uso doCerveja caseira:

brew install pdf-tools

informação relacionada