Como remover imagens de um arquivo PDF

13

Eu tenho um documento PDF bastante grande (~ 100 MB) com muitas imagens (como ilustrações e imagens de fundo) e gostaria de ter uma cópia desse pdf sem imagens, mas não consigo descobrir como faça isso.

Eu não estou falando sobre convertê-lo em texto apenas, eu gostaria de manter parágrafos / tabelas / colunas múltiplas como elas são.

Estou confortável com a linha de comando e tenho vários computadores com diferentes distribuições que posso usar.

Ornux
fonte
Como estamos falando de um documento de 500 páginas com várias imagens em cada página, estou procurando uma maneira automatizada de remover todas as fotos.
Ornux

Respostas:

14
cpdf -draft original.pdf -o version_without_images.pdf

Ele não está nos repositórios, mas você pode encontrar um download ( pré-compilado ou de origem ) no site deles .


Manual :

15.1 Projetos de documentos

A opção -draft remove imagens bitmap (fotográficas) de um arquivo, para que possa ser impresso com menos tinta. Opcionalmente, a opção -boxes pode ser adicionada, preenchendo os espaços deixados em branco com uma caixa cruzada indicando onde estava a imagem. Não é garantido que seja totalmente visível em todos os casos (o bitmap pode ter sido parcialmente coberto por objetos vetoriais ou recortado no original). Por exemplo:

 cpdf -draft -boxes in.pdf -o out.pdf
Rinzwind
fonte
1
Era exatamente isso que eu estava procurando. O arquivo de saída é simplesmente perfeito. Muito obrigado!
Ornux
@Rinzwind Observe que o link "site deles" na verdade vai para um arquivo zip.
Jos
Hmm ... para mim, continua adicionando linhas quase aleatórias ao longo do texto, e o tamanho do arquivo aumenta um pouco, em vez de encolher.
Henning Koehler
22

Os últimos lançamentos do Ghostscript também podem fazer isso. Basta adicionar o parâmetro -dFILTERIMAGEao seu comando.

Existem ainda mais dois novos parâmetros que podem ser adicionados para remover seletivamente os tipos de conteúdo "vetor" e "texto" :

  1. -dFILTERIMAGE: produz uma saída em que todas as imagens rasterizadas são removidas.

  2. -dFILTERTEXT: produz uma saída em que todos os elementos de texto são removidos.

  3. -dFILTERVECTOR: produz uma saída em que todos os desenhos vetoriais são removidos.

Quaisquer duas dessas opções podem ser combinadas. (Se você combinar todos os três, todas as páginas serão apagadas ...)

Exemplos

Aqui está a captura de tela de uma página PDF de exemplo que contém todos os três tipos de conteúdo mencionados acima:

Captura de tela da página PDF original contendo os elementos "imagem", "vetor" e "texto".
Captura de tela da página PDF original contendo os elementos "imagem", "vetor" e "texto".


A execução dos 6 comandos a seguir criará todas as 6 variações possíveis do conteúdo restante:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT input.pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR input.pdf

 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf

A imagem a seguir ilustra os resultados:


Linha superior, da esquerda: todo o "texto" removido; todas as "imagens" removidas; todos os "vetores" removidos. Linha inferior, da esquerda: apenas "texto" mantido; apenas "imagens" mantidas; apenas "vetores" mantidos.
Linha superior, da esquerda: todo o "texto" removido;  todas as "imagens" removidas;  todos os "vetores" removidos.  Linha inferior, da esquerda: apenas "texto" mantido;  apenas "imagens" mantidas;  apenas "vetores" mantidos.


Kurt Pfeifle
fonte
2

Embora a resposta @Rinzwind seja a coisa certa , gostaria apenas de comentar a solução "intermediária". Você normalmente pode reduzir bastante o tamanho das imagens usando o ghostscript com

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... às vezes é realmente útil para a revisão. A página do manual para escrever PDF está aqui .

Rmano
fonte
O @KurtPfeifle /screen(entre outras coisas) definirá a resolução das imagens de bitmap para 72 dpi. Então, sim, se você tiver imagens com DPI menor, poderá aumentar o tamanho do arquivo. Esta é a razão pela qual eu usei a palavra "normalmente" (no sentido de "nem sempre, mas com bastante frequência"). Sinta-se livre para votar o que quiser.
Rmano
Executar este comando: for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done. Ele produzirá dois arquivos de texto que você pode comparar usando sdiff -sbB $[file1}.txt ${file2}.txt. Agora você conhece exatamente e completamente todas as diferentes configurações introduzidas pelo -dPDFSETTINGS=/screen!
Kurt Pfeifle
Feito. Ainda não é possível ver qual opção pode fornecer um arquivo maior do /screenque em /default--- 72dpi versus 150dpi, otimizado, descartar a visualização EPS ... mas, ei, não é um grande problema. As pessoas testam e escolhem a melhor solução.
Rmano
Sinto muito - talvez eu tenha que me desculpar agora pela insolência da minha primeira declaração. Para ser honesto, eu só parecem se lembrar de minhas investigações anteriores (um anos alguns para trás) que /screendeu resultados muito ruins. Possivelmente minha memória falha, ou eu a confundi /epub. O comando que eu dei a você era de memória, porque eu tinha certeza que mostraria o que eu quis dizer. Agora, refiz a execução novamente, não vejo mais o que esperava: mais testes prolongados que fiz alguns anos atrás. Em seguida, muitas fontes (CID? / CFF?) Obtiveram tamanhos de inchaço rasterizados dos PDFs resultantes. Devo voltar a visitar novamente a questão, uma vez que eu tenho mais tempo ... :-)
Kurt Pfeifle
0

Você pode usar o editor mestre de pdf, excluir essas imagens e salvar como um novo arquivo pdf. Você pode baixá-lo no centro de software Ubuntu.

Sudheer
fonte
Acabei de instalá-lo para tentar, mas não vejo uma maneira automatizada de fazer isso. Como se trata de um documento de 500 páginas, não vejo a remoção manual como solução aqui. Perdi algo ?
Ornux
não, você não perdeu nada, eu pensei que as imagens eram de tamanho grande, então você quer removê-las, nunca pensou em tantas imagens. de qualquer maneira boa pergunta.
Sudheer