Como reduzo o tamanho de um arquivo pdf que contém imagens?

18

Eu tenho um arquivo pdf que contém imagens e quero reduzir seu tamanho para carregá-lo em um site com um limite de tamanho.

Então, como posso reduzir o tamanho de um arquivo pdf na linha de comando?

Pandya
fonte

Respostas:

26

Você pode usar gs- GhostScript (interpretador e visualizador de linguagem PostScript e PDF) da seguinte maneira:

  • Defina pdfwrite como dispositivo de saída-sDEVICE=pdfwrite
  • Use o apropriado -dPDFSETTINGS.

    Da documentação :

    -dPDFSETTINGS = configuration
    Predefine os "parâmetros do destilador" para uma das quatro configurações predefinidas:

    • / screen seleciona uma saída de baixa resolução semelhante à configuração do Acrobat Distiller "Screen Optimized".
    • / ebook seleciona saída de média resolução semelhante à configuração do "eBook" do Acrobat Distiller.
    • / printer seleciona uma saída semelhante à configuração do Acrobat Distiller "Print Optimized".
    • / pré-impressão seleciona uma saída semelhante à configuração "Pré-impressão otimizada" do Acrobat Distiller.
    • / default seleciona a saída pretendida para ser útil em uma ampla variedade de usos, possivelmente à custa de um arquivo de saída maior.
  • -oopção para saída do arquivo que também define -dNOPAUSEe -dBATCH(consulte Parâmetros relacionados à interação )

Exemplo:

$ du -h file.pdf 
27M file.pdf

$ gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -q -o output.pdf file.pdf

$ du -h output.pdf 
900K    output.pdf

Aqui, -qsuprima as mensagens normais de inicialização e faça o equivalente ao -dQUIETque suprime os comentários de informações de rotina

Pandya
fonte
Não funciona para mim. Uma saída em PDF pesquisável tesseractpermanece completamente inalterada ao tentar reduzi-la com este comando.
Gabriel Staples
2
ps2pdf input.pdf output.pdf

Eu recebi a resposta do ask ubuntu e funcionou para mim. Na verdade, reduziu 18,1 Mb para 1,0 Mb

Freeman
fonte
Não funciona para mim. Uma saída em PDF pesquisável tesseractpermanece completamente inalterada ao tentar reduzi-la com este comando.
Gabriel Staples
0

Você pode tentar isso:

$ time pdftk myFile.pdf output myFile__SMALLER.pdf compress
GC Warning: Repeated allocation of very large block (appr. size 16764928):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 11837440):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 8384512):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 7254016):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 34041856):
    May lead to memory leak and poor performance.
GC Warning: Repeated allocation of very large block (appr. size 33525760):
    May lead to memory leak and poor performance.

real    0m23.677s
user    0m23.142s
sys     0m0.540s
$ du myFile*.pdf
108M    myFile.pdf
74M     myFile__SMALLER.pdf

É mais rápido do que gsmas comprime até 30% nesse caso para um arquivo de entrada 107,5MiB.

SebMa
fonte
Não funciona para mim. Uma saída em PDF pesquisável tesseractpermanece completamente inalterada ao tentar reduzi-la com este comando.
Gabriel Staples