GNU/Linux >> Linux Esercitazione >  >> Linux

Ridimensiona e comprimi in batch i file PDF

Quindi convert di ImageMagick produrrà PDF rasterizzati e molte persone sarebbero interessate a mantenere la grafica vettoriale e il testo intatti in modo che solo le immagini incorporate vengano compresse. Quindi una buona alternativa alla compressione è usare gs dal pacchetto ghostscript esempio di utilizzo:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf in.pdf

nel parametro del comando precedente:-dPDFSETTINGS=/ebook è importante. Può avere 3 valori:

-dPDFSETTINGS=/screen   (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook    (low quality, 150 dpi images)
-dPDFSETTINGS=/printer  (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default  (almost identical to /screen)

Sto suggerendo uno strumento a riga di comando qui, che può essere facilmente raggruppato con loop nei linguaggi di scripting incorporati in Windows, Linux, OS X, ecc.

ImageMagick supporta i PDF e ha un resize opzione con il suo strumento di conversione. Non l'ho mai usato personalmente, ma puoi provare a giocarci.

Puoi anche usare il compress opzione (c'è un esempio qui):

Ruota un PDF

$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf

Ciò presuppone un PDF supportato da TIFF. Il parametro densità è importante perché altrimenti ImageMagick sottocampiona l'immagine (per qualche motivo). L'aggiunta dell'opzione di compressione aiuta a ridurre le dimensioni complessive del PDF, senza perdita di qualità.

Per i PDF multipagina, potresti voler utilizzare pdftk , quindi utilizza mogrify da ImageMagick per convertire ogni pagina sul posto:

$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf

Per convertire i file PDF con ImageMagick, devi aver installato GhostScript.

ImageMagick può convertire PDF multipagina. Mentre mogrify convertirà sul posto, ti consiglio di usare convert così puoi conservare gli originali in caso di incidente.

Ho eseguito alcuni test sul PDF di esempio fornito. Questo ha funzionato abbastanza bene per me:

convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf

La densità predefinita è 72 DPI. Impostandolo più alto possiamo ottenere una risoluzione più alta e quindi una qualità accettabile. Sembrava a posto a 150 , ed era un po' più piccolo, ma se vuoi soddisfare una gamma di PDF 200 dovrebbe funzionare.

La compressione JPEG dovrebbe scegliere automaticamente un livello o il valore predefinito è 92 su una scala di 1 a 100 con 100 essere il migliore. Impostandolo a 20 , sembra buono quasi quanto l'originale (un po' più sfocato e il piccolo testo in fondo è un po' difficile da leggere, ma in origine era comunque).

Queste opzioni portano i tuoi 1,7 MB campione fino a 0,5 MB , pur mantenendolo leggibile. Puoi sperimentare un po'.

Se vuoi una dimensione più piccola (sia del file che dell'immagine/PDF), puoi usare -resize #% , per esempio. -resize 75% . Nel tuo PDF di esempio, però, ciò rende la piccola stampa in basso praticamente illeggibile.

Se hai ancora poco spazio, soprattutto per i PDF multipagina, puoi comprimere ulteriormente aggiungendo i file a un archivio ZIP (o altro). Ciò ha ridotto la dimensione del file a 0,43 MB su quel PDF di prova (la riduzione della qualità di compressione JPEG ha un effetto molto più drastico). Puoi anche dividere il file PDF in pagine con pdftk , come suggerito da @glallen nella sua modifica, oppure dividere l'archivio e ricombinarlo dall'altra parte.

2 MB è anche un limite di allegati piuttosto piccolo, potresti voler esaminare altri provider di posta elettronica. Dalla memoria, GMail fornisce oltre 10 MB per email.

Queste opzioni, e altre ancora, sono completamente documentate sul loro sito web.


Linux
  1. 16 Comandi Tar per comprimere ed estrarre file in Linux

  2. Comando Tar in Linux (comprimi e decomprimi file)

  3. Rinominare i file nella directory?

  4. Unisci/converti più file PDF in un unico PDF

  5. Batch ridenominazione dei file nella riga di comando e Xargs

Come convertire in batch file PDF su Linux

Come convertire i file PDF in formato EPUB utilizzando Calibre in Linux

Come convertire PDF in immagini PNG e viceversa in Linux

Comando tar di Linux per comprimere ed estrarre file

Comprimi, crittografa, dividi e trasporta file di grandi dimensioni in modo sicuro

Come installare e utilizzare Pigz per comprimere i file più velocemente in Linux