Compresión de PDFs usando Ghostscript bajo Linux

Me encontré ante la necesidad de comprimir archivos PDF que incluían imágenes escaneadas, ya que esto hacía que su tamaño fuera innecesariamente grande. No era necesario contar con imágenes de alta resolución, bastaba con poder visualizarlas en pantalla e imprimirlas en una impresora convencional.

La magia de Ghostscript

Googleando los términos “compresión pdf” aparecieron varias opciones en linea para subir y comprimir los archivos, pero teniendo en cuenta que utilizo una computadora con Linux y no confío en ninguno de estos proveedores desconocidos opté por utilizar Ghostscript en su lugar. El siguiente comando redujo un PDF de 7,31MB a 674KB en alrededor de un segundo.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=salida.pdf entrada.pdf
Del manual de Ghostscript podemos ver que existen varias calidades de donde escoger:

  • /screen – baja resolución similar a la opción “Optimizado para pantalla” de Acrobat Distiller.
  • /ebook – resolución media similar a la opción “eBook” de Acrobat Distiller.
  • /printer – similar a la opción “Optimizado para impresión” de Acrobat Distiller.
  • /prepress – similar a la opción “Optimizado para preimpresión” de Acrobat Distiller.
  • /default – pretende ser utilizable en una amplia variedad de usos, posiblemente a costa de un archivo de mayor tamaño.

Facilitando las cosas con BASH

#!/bin/sh

gs    -q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.3 \
-dPDFSETTINGS=/ebook \
-dEmbedAllFonts=true \
-dSubsetFonts=true \
-dColorImageDownsampleType=/Bicubic \
-dColorImageResolution=150 \
-dGrayImageDownsampleType=/Bicubic \
-dGrayImageResolution=150 \
-dMonoImageDownsampleType=/Bicubic \
-dMonoImageResolution=150 \
-sOutputFile=
$1-comprimido.pdf \
$1

Guardamos esta porción de código y le asignamos permisos de ejecución [ej. en una terminal ingresamos: nano comprimirpdf; pegamos el código anterior, guardamos (Ctrl+O) y salimos (Ctrl+X), lo hacemos ejecutable (chmode u+x comprimirpdf)] y luego escribimos: ./comprimirpdf archivo.pdf y obtendremos un archivo llamado archivo-comprimido.pdf con una versión comprimida de archivo.pdf.

 

Referencias |

Publicado en Miniguías Etiquetado con: ,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*