Ridurre PDF di grandi dimensioni
Spesso si condividono documenti costituiti da poche pagine ma di dimensioni considerevoli e difficili da archiviare e visualizzare sullo schermo, per lo meno nei vecchi PC o nei lettori di eBook. Sono per lo più formati da immagini con risoluzioni molto elevate che necessitano quindi di essere ridotte e alleggerite. Di seguito mostro come ImageMagick possa facilitare la riduzione di questi PDF in due passaggi.
Nell'articolo Software liberi per modificare i PDF avevo descritto come ottimizzare con Ghostscript (collezione di programmi liberi da riga di comando) i PDF con l'opzione ebook o screen (più riduttiva e penalizzante dal punto di vista della qualità visiva). Qui riporto il comando da usare:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Dove l'opzione "-dPDFSETTINGS=" può assumere i seguenti valori:
/screen trasforma l'input.pdf in un output.pdf di bassa risoluzione;
/ebook di media risoluzione;
/printer ottimizzato per la stampa;
/prepress ottimizzato per la prestampa;
/default ottimizzato per un utilizzo generico senza badare alla capienza del file di output.
In genere funziona quasi sempre, riducendo notevolmente la loro dimensione e velocizzandone il caricamento. Alcune volte però il risultato non è soddisfacente e bisogna ricorrere alla suite ImageMagick.
ImageMagick
Come descritto su Wikipedia, ImageMagick è una suite di programmi liberi per la creazione, modifica e visualizzazione di immagini bitmap. E' distribuita con una licenza compatibile con la GNU GPL ed è disponibile su tutti i principali sistemi operativi.
Senza entrare troppo nei dettagli riporto solo i comandi che uso in questi casi, mi ero anche proposto di scrivere uno script in bash per velocizzare il tutto, ma le opzioni possono variare caso per caso e allora preferisco di volta in volta adattarli alla bisogna.
Esempio
Non trovando alcun PDF che si prestasse (li ho già tutti ridotti e ho cancellato gli originali) ne ho creato uno ad-hoc, ipotizzando il peggiore caso possibile:
3 pagine in tiff (senza compressione) a colori e a 600 dpi, insomma file da 130 MB l'uno!
Li ho uniti con questo comando di ImageMagick:
convert *.tif -density 600 -set units PixelsPerInch PDF_high.pdf
Ne è uscito un file mostruoso da 490 MB, lento a caricarsi nei lettori PDF e anche difficile da conservare magari nella pennetta usb da 1 GB. In questo caso l'ottimizzazione con Ghostscript (opzione ebook) mi restituisce un PDF da 375 kB con però tutte pagine bianche.
Con ImageMagick
Per convertire in jpeg (ma se si cerca una maggiore qualità è preferibile usare il formato png) tutte le pagine del PDF preservando la densità a 600 dpi uso:
convert -density 600 -set units PixelsPerInch PDF_high.pdf pag_%02d.jpg
Ottenendo 3 file jpg da 1 MB l'uno: pag_00.jpg, pag_01.jpg e pag_02.jpg
Unisco il tutto con:
convert *.jpg -quality 75 -set units PixelsPerInch PDF_jpg.pdf
Se avessi usato il png avrei avuto altre opzioni per la qualità e "-alpha off" per non avere le trasparenze. Il PDF finale occupa 1,1 MB ed è ancora un po' lento nell'aprirsi, si può allora ottimizzarlo con Ghostscript (parametro ebook), ottenendo un file perfettamente leggibile e più veloce nell'aprirsi da 265 kB.
Infine cancello tutte le immagini jpg con:
rm *.jpg
Questa volta vi risparmio i file di esempio, anche perché non ho sufficiente spazio per caricarli sul sito!!
Add new comment