Como reduzir o tamanho de um arquivo pdf?

51

Estou procurando uma maneira no Ubuntu de reduzir o tamanho de um pdf (reduzindo a qualidade das imagens).

Eu sei que isso pode ser feito no Ghostscript, digitando o seguinte comando no terminal:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

O problema é que não consigo especificar a qualidade com precisão. O parâmetro -dPDFSETTINGS=/screené aquele que decide a qualidade; mas as alternativas são bastante rígidas (por exemplo, é possível -dPDFSETTINGS=/ebookobter uma qualidade um pouco melhor).

Estou procurando uma maneira de reduzir o tamanho de um pdf de uma maneira que permita especificar numericamente a qualidade desejada.

Nicole
fonte
Você pode conferir estas perguntas e respostas .
Glutanimate
É de fato uma duplicata!
hectorpal

Respostas:

57

Consegui fazer uma pequena variação no seu comando com êxito usando a opção -r300 em @drN A opção -r permite que você defina a resolução de saída em pdf e png.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
    -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages \
    -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf
Tully
fonte
7
Este comando transformou um PDF de 25 páginas e 4 páginas em quase a mesma qualidade, mas 2 MB. Felicidades!
Yanick Rochon 28/05
Isso funciona com a maioria dos arquivos. No entanto, em alguns casos, na verdade, aumenta o tamanho do arquivo. Parece que a -ropção é ignorada nesses casos.
Luís de Sousa
Este comando consumiu toda a minha RAM (8 GB) e congelou meu laptop com um arquivo pdf de 1000 páginas.
Para fazer
12

Essas duas postagens que eu publiquei no Stackoverflow devem ajudá-lo. Eu estava tentando reduzir o tamanho dos pdfs, garantindo que eles atendessem a um determinado dpi ou ppi para a minha tese.

Reduzindo o tamanho do pdf com ghostscript

Alterando o dpi da imagem pdf usando gs

Você já tentou brincar convertno Linux?

Editar:

gs \
  -o out300.png \
  -sDEVICE=pngalpha \
  -r300 \
   input.pdf

Se bem me lembro, r300é a saída, dpimas você pode querer verificar. Porém, isso converte um pdf em png.

OU

convert -units PixelsPerInch myPic.pdf -density 300 fileout.pdf

Deixe-nos saber como vai! Isto é para um pdf ou qualquer outro formato para qualquer outro formato. Acabei de usar um arquivo de entrada myPic.pdf e um arquivo de saída fileout.pdf

dearN
fonte
Hmm ... Eu olhei para as perguntas às quais você vinculou. Eles são interessantes, mas é difícil executar um comando concreto que eu deveria usar. Eu estou procurando um comando com algum valor numérico lá que eu possa jogar que determine a qualidade. Você pode efetuar esse comando? Pode-se fazer isso usando convert?
28512 Nicole
Editei minha resposta para incluir algumas opções mais simples. Dê uma olhada e avise-nos! :)
Dearn
11
A conversão aumenta o tamanho do meu pdf, mesmo que eu use 100 dpi. Talvez a melhor opção seja converter para png usando "gs" e depois "converter" para ir para pdf?
28512 Nicole
@ Nicole Sempre houve problemas com as conversões em pdf. Para que você propõe usar o pdf?
Dearn
@ Nicole Notei que, para obter o melhor resultado para arquivos pdfs / eps, eu teria que voltar ao programa que criou o pdf em primeiro lugar e alterar minhas opções de salvamento para salvar no dpi / ppi que eu desejar. Espero que ajude e sim que possa ser um pouco doloroso nas costas.
Dearn
12

A maneira mais simples que encontrei é abrir um arquivo PDF de código-fonte com o LibreOffice Draw e exportar para PDF com o DPI esperado. A janela da caixa de diálogo Exportar do Draw permite especificar o DPI e outras opções para PDF exportado.

Serrega
fonte
11
Eu tentei todas as outras coisas da linha de comando, mas no final, isso me permitiu aumentar a compactação o suficiente para meus propósitos.
C.Rogers
11
A maneira gráfica, com ainda muito controle.
Agmenor
Descobri que o LibreOffice Draw é melhor na impressão / exportação de pdf do que em qualquer outra coisa, então +1.
Yoric 24/07
1
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=myNewFile.pdf myOldFile.pdf

Esta é a maneira mais fácil que eu acho, pode reduzir o tamanho para 50 +/- kb. No seu terminal, vá para o diretório do arquivo: example

cd ~/document/files

Em seguida, digite o código acima em que:

myNewFile.pdf

é o novo nome do arquivo e

myOldFile.pdf

é o nome do arquivo.

ConnelBLAZE
fonte