News

31 Dicembre 2021

Diminuire la dimensione di un pdf

Spesso si hanno dei documenti in pdf o delle immagini in formato pdf con dimensioni irragionevoli per l'uso che se ne deve fare. Uno dei casi tipici è quello delle tesi di laurea dove gli studenti copiano nei modi più disparati le immagini dai vari programmi che usano e dai vari articoli che consultano, portanto le tesi a "pesare" anche 100 MB. Un altro caso tipico è quello dei documenti scansionati e trasformati direttamente in pdf. Se le impostazioni di scansione non sono ragionevoli, cioè per esempio si usano impostazioni da fotografia per semplici documenti di testo, il pdf risultante sarà di svariate decine di MB.

Ovviamente la soluzione migliore è sempre quella di ottimizzare le immagini una a una. Il motivo è semplice: una compressione generica uguale per tutte le immagini può andare bene se le immagini sono ragionevolmente tutte lo stesso livello di dettaglio, come in una serie di pagine scansionate, ma può non andare bene per un documento che contiene immagini molto eterogenee fra loro. Se però non si ha tempo di ottimizzare tutte le immagini una a una, si può anche procedere a "ridistillare", come si dice in gerco, il pdf, grazie a un software in grado di leggere e creare pdf (come Adobe Acrobat o Ghostscript). Questo software decodificherà il file pdf iniziale e lo ricodificherà in un altro file, sempre in formato pdf, usando però le nuove impostazioni date da voi, portanto quindi a una completa riscrittura del codice del pdf (a volte correggendo anche degli errori) e in particolre, se le nuove impostazioni sono adeguate, a una diminuzione del file pdf finale.

Per ridurre le dimensioni dei miei pdf uso Ghostscript. Ecco cinque esempi di codice che vanno lanciati da terminale (Command Prompt o Powershell o Windows Terminal). Chiaramente più la qualità è alta, minore sarà la riduzione delle dimensioni del pdf finale rispetto a quello di partenza. I comandi sono intesi per Ghostscript su Windows 64 bit ma possono essere adattati velocemente a un altro sistema operativo cambiando il nome dell’eseguibile di Ghostscript).

Miglior qualità con codifica FLATE (senza perdita) per la compressione delle immagini:

gswin64c.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=output.pdf
-dAutoFilterColorImages=false -dAutoFilterGrayImages=false
-dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode
-dPDFSETTINGS=/prepress -dCompatibilityLevel=1.5 input.pdf

Miglior qualità con codifica DECT (jpeg) per la compressione delle immagini:

gswin64c.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=output.pdf
-dPDFSETTINGS=/prepress -dCompatibilityLevel=1.5 input.pdf

Qualità via via minore con codifica DECT (jpeg) per la compressione delle immagini. Sostituire XXXXXXX con /printer oppure /ebook oppure /screen, in ordine di qualità decrescente:

gswin64c.exe -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=output.pdf
-dPDFSETTINGS=XXXXXXX -dCompatibilityLevel=1.5 input.pdf

Per una panoramica sul significato delle varie opzioni, vi rimando alla documentazione di Ghostscript e in particolare alla sezione sul Devide di Output Vettoriale PDFwrite.