Optimización del tamaño de ficheros PDF en Linux

Este artículo va a ser más corto de lo habitual ya que lo voy a dedicar a un truco que he descubierto después de mucho investigar cómo conseguir que mis PDFs pesen menos con herramientas de Linux. Vaya por delante que no se trata de una receta mágica que reduce el tamaño de los ficheros sin coste a cambio, ya que la única forma de hacerlo es disminuyendo la calidad del contenido (similar a cuando aumentamos la compresión en un JPG).

Antes de dar con este truco he probado con numerosas herramientas populares en Linux, como ImageMagick o PDFtk, y con diversos servicios online de conversión, como Compress PDF, pero el mejor resultado me lo ha dado sin duda el venerable y fiable Ghostscript. Para quien no lo conozca a estas alturas, Ghostscript es un renderizador software de ficheros PostScript y PDF que se encuentra presente en los sistemas Unix desde finales de los 80.

Evidentemente, antes de proceder a utilizar Ghostscript es necesario tenerlo instalado en nuestro Linux, aunque lo habitual es que venga de serie. En el caso de Debian, es tan sencillo como:

# apt-get install ghostscript

Ya podemos proceder a utilizarlo siempre que queramos y sin necesidad de privilegios de administrador, ya que al fin y al cabo se trata de una herramienta para usuarios. Eso sí, hay que utilizarlo desde la línea de comandos, así que tendremos que abrir una consola de texto desde el menú de nuestro escritorio gráfico.

Llegó el momento de compartir el truco. La línea de comandos a utilizar para optimizar el tamaño de un PDF es la siguiente:

$ gs -dSAFER -dBATCH -dNOPA#USE -q -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=pdfwrite -dPDFSETTINGS="perfil_pdf" -sOutputFile="fichero_optimizado" "fichero_original"

Ghostscript necesita de tres parámetros personalizables para trabajar según nuestras necesidades. El primero es "perfil_pdf", que indicará un perfil de calidad predefinida. De menor a mayor calidad, los valores de "perfil_pdf" son screen, default, ebook, printer y prepress. El segundo parámetro es "fichero_optimizado" y se trata del nombre (podemos incluir también el camino) del fichero resultado una vez reducido su tamaño. Por último, tenemos "fichero_original", que evidentemente es el nombre (también se puede indicar el camino) del fichero PDF que queremos optimizar.

Con esto podemos conseguir resultados espectaculares, como un caso en el que he conseguido reducir un PDF de 62Mb a sólo 5MB con el perfil «ebook» y apenas pérdida de calidad. Sin embargo, cada fichero PDF es un mundo (no es lo mismo un fichero sólo de texto que otro que incluya una buena carga gráfica) y nos podemos encontrar casos en los que incluso aumente de peso. Todo es cuestión de probar.

Antes de terminar, un comentario sobre los conversores online. No soy muy partidarios de ellos porque suelen tener límites en el tamaño del PDF a optimizar, te insertan una marca de agua y nadie te asegura la confidencialidad del fichero subido. Pero también es cierto que te pueden sacar de un apuro en un momento de urgencia. Todo es valorar las ventajas y los inconvenientes.

Espero que este truco os sea de utilidad (al final me ha quedado un artículo largo…).