Optimizando PDF

Optimizando PDF

Uno de mis clientes es un periódico el cual cuenta con una aplicación interna que permite que suban el periódico en formato PDF para que luego con una interface de calendario esté disponible en su web.

Después de un año de servicio el folder web donde colocan los periódicos ya excede los 2.5 megas y es por que suben PDF no optimizados, a mi parecer son los PDF que se mandan a imprenta entonces pesan en promedio entre 25 a 35 MB.

Como empresario la solución es muy simple cobrarles más por darles más espacio, pero es un problema que realmente me interesaba solucionar.

La segunda solución es que ellos subieran PDFS menos pesados, sugiriéndoles alguna herramienta para ello o alguna forma de guardado que mejore la compresión.

Esto si es una solución pero aun así lo que más me interesaba era si era posible que yo en el servidor los compactara y que siguieran siendo PDF.

Básicamente mi idea es posible lo que voy a redactar no es un conocimiento total de la solución sino un concentrado de la información relevante para la solución.

pues el primer asunto es que los PDF contienen imágenes y el formato PDF no optimiza por default las imágenes esto significa que si agregas una foto de 16 mega pixeles a un PDF y luego la haces pequeña porque así la ocupas el PDF contendrá la imagen original y solo la hará pequeña para mostrarla, el segundo problema en realidad tiene que ver con lo mismo para que las fuentes se vean correctamente cada fuente utilizada en un documento es integrada como metadato para ser usada a la hora de visualizarla.

Pues hasta ahí con esas dos cosas podía solucionar mi problema en primer lugar renderizarla el texto para que estuviera en el formato visual que se deseaba sin incluir la fuente y además aplicaría escalado y compresión a las imágenes para que las que contenga sean del tamaño en el que se visualizan no en el tamaño original.

<?php
/*
Optimiza los pdf guardandolos de menos tamaño
Depende de tener ghostscript
*/
if ($dh = opendir(‘.’)) {
while (($file = readdir($dh)) !== false) {
//if (($file[0]!=’.’) and (substr(strrchr($file, ‘.’), 1) == ‘pdf’)) {
if (($file[0]!=’.’) and (pathinfo($file, PATHINFO_EXTENSION) == ‘pdf’)) {
system(“gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$file.mini $file”);
system(“rm $file”);
system(“mv $file.mini $file”);
}
}
closedir($dh);
}

El codigo depende de la libreria isntalada ghostscript para instalarla solo basta
sudo apt-get install ghostscript

la linea del if que esta comentada hace lo mismo que la que esta en uso la diferecia basicmaente es la optimizacion, la segunda es mas rapida.

Submit a Comment

Your email address will not be published. Required fields are marked *