Um de nossos fornecedores começou a colar uma imagem desnecessariamente grande na última página de PDFs que obtemos deles. Eu preciso aparar isso. No entanto, temos centenas deles, por isso é proibitivo entrar manualmente. Quais são as melhores maneiras de extrair e excluir (de preferência a primeira e depois a outra; ainda preciso confirmar por tamanho de arquivo que não estou excluindo uma que não tenha a imagem) automaticamente a última página de um PDF? OS é Linux.
Posso extraí-lo usando ghostscript, com algo parecido com gs -dFirstPage=5 -dLastPage=5
, mas preciso automatizar isso, não consigo passar por e descobrir manualmente qual é o número da última página.
Alguma ideia?
Editar: para esclarecer, eu simplesmente quero dividir / excluir a última página. Não é a imagem, excise o período da última página.
pdftk
- tenho certeza de que pode ser feito para trabalhar em geral para esse tipo de tarefa.Respostas:
Como o @Daniel Andersson já comentou, isso pode ser feito facilmente com
pdftk
:Eu não sei se isso pode ser feito com uma chamada para pdftk embora ...
Edit : você pode combiná-lo com a resposta do thanosk e usar (no bash):
quando você já extraído a última página para a variável
$last
.fonte
Para melhorar ainda mais a resposta do @ eldering, o pdftk versão 1.45 e posterior possui os meios para referenciar as páginas na ordem inversa, acrescentando a letra minúscula r ao número da página. A página final em um PDF é r1, a penúltima página é r2, etc.
Por exemplo, a única chamada pdftk:
eliminará a página final de input.pdf - a entrada deve ter pelo menos duas páginas.
Para extrair apenas a página final de um PDF para testar seu tamanho do arquivo, execute:
O Pdftk está disponível no Linux. Muitas distribuições têm um binário que você pode instalar. Você deve ter certeza de que é a versão 1.45 ou posterior. Caso contrário, você pode criar o pdftk a partir do código fonte.
fonte
pdfinfo fornecerá o tamanho do arquivo pdf real e pdfimages fornecerá um índice das imagens no referido arquivo pdf. Então você pode escrever um script no formulário
que deve retornar se um arquivo específico tiver uma imagem na última página. Se isso acontecer, você poderá fazer qualquer manipulação que precisar.
fonte
Aqui está uma solução usando o pdfjam em vez do pdftk:
Onde o primeiro argumento é o arquivo a ser aparado e o segundo argumento, a quantidade de páginas a serem aparadas (o padrão é 1).
fonte
Uma solução de um liner seria usar
find
juntopdftk
:NOTA : os arquivos cortados são armazenados neste exemplo em um subdiretório chamado
cut
para manter o nome do arquivo original, poispdftk
não permite a substituição de arquivos de entrada.fonte