¿Cómo reducir el tamaño de un archivo pdf?

52

Estoy buscando una forma en Ubuntu para reducir el tamaño de un pdf (reduciendo la calidad de las imágenes).

Sé que esto se puede hacer en Ghostscript escribiendo el siguiente comando en la terminal:

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

El problema es que no puedo especificar la calidad con precisión. El parámetro -dPDFSETTINGS=/screenes el que decide la calidad; pero las alternativas son bastante rígidas (por ejemplo, es posible hacerlo -dPDFSETTINGS=/ebookcon una calidad ligeramente mejor).

Estoy buscando una manera de reducir el tamaño de un pdf de una manera que me permita especificar la calidad deseada numéricamente.

Nicole
fuente
Es posible que desee ver estas preguntas y respuestas .
Glutanimate
De hecho, es un duplicado!
hectorpal

Respuestas:

58

Pude realizar una ligera variación en su comando con éxito usando la opción -r300 de @drN La opción -r le permite establecer la resolución de salida en el pdf y en el png.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
    -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages \
    -dCompressFonts=true -r150 -sOutputFile=output.pdf input.pdf
Tully
fuente
77
Este comando transformó un PDF de 4 páginas de 25 MB en uno de casi la misma calidad, pero de 2 MB. ¡Salud!
Yanick Rochon
Esto funciona con la mayoría de los archivos. Sin embargo, en algunos casos, en realidad aumenta el tamaño del archivo. Parece que la -ropción se ignora en estos casos.
Luís de Sousa
Este comando consumió toda mi RAM (8 Gb) y congeló mi computadora portátil con un archivo pdf de 1000 páginas.
Para hacer el
12

Estas dos publicaciones que había publicado en Stackoverflow deberían ayudarte. Estaba tratando de reducir el tamaño de los archivos PDF al tiempo que me aseguraba de que cumplieran con una cierta dpi o ppi para mi tesis.

Reducción del tamaño de pdf con ghostscript

Cambio de dpi de imagen pdf usando gs

¿Has intentado jugar con convertLinux?

Editar:

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

Si no recuerdo mal, r300es la salida, dpipero es posible que desee comprobar. Sin embargo, esto convierte un pdf a un png.

O

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

¡Háganos saber cómo va! Esto es para un pdf o cualquier otro formato a cualquier otro formato. Acabo de usar un archivo de entrada de myPic.pdf y un archivo de salida de fileout.pdf

querida N
fuente
Hmm ... Miré las preguntas que vinculaste. Son interesantes, pero es difícil obtener un comando concreto que deba usar. Estoy buscando un comando con algún valor numérico con el que pueda jugar que determine la calidad. ¿Se puede efectuar tal comando? ¿Se puede hacer usando convertir?
Nicole
Edité mi respuesta para incluir algunas opciones más simples. ¡Eche un vistazo y háganos saber! :)
dearN
1
La conversión aumenta el tamaño de mi pdf, incluso si uso 100 ppp. ¿Quizás la mejor opción es convertir a png usando "gs" y luego "convertir" para ir a pdf?
Nicole
@Nicole Siempre ha habido problemas con las conversiones de pdf. ¿Para qué propone utilizar el pdf?
dearN
@Nicole Noté que para obtener el mejor resultado para archivos PDF / EPS, tenía que volver al programa que hizo el PDF en primer lugar y cambiar mis opciones de guardado para guardar en el dpi / ppi que quiero. Espero que ayude y sí, eso puede ser un poco doloroso en la parte trasera.
dearN
12

La forma más simple que encontré es abrir un archivo PDF de código fuente con LibreOffice Draw y luego exportarlo a PDF con el DPI esperado. La ventana de diálogo Exportar de Draw le permite especificar DPI y otras opciones para exportar PDF.

Serrega
fuente
1
Intenté todas las otras cosas de la línea de comandos, pero al final, esto me permitió aumentar la compresión lo suficiente para mis propósitos.
C.Rogers
1
La forma gráfica, con aún mucho control.
Agmenor
Descubrí que LibreOffice Draw es mejor para imprimir / exportar pdf que casi cualquier otra cosa, así que +1.
Yoric
1
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=myNewFile.pdf myOldFile.pdf

Creo que esta es la forma más fácil, puede reducir el tamaño a 50 +/- kb. En su terminal, vaya al directorio del archivo: ejemplo

cd ~/document/files

Luego escriba el código anterior donde:

myNewFile.pdf

es el nuevo nombre del archivo y

myOldFile.pdf

es el nombre del archivo

ConnelBLAZE
fuente