Home > Centos, Debian, Linux, Ubuntu > Generare miniature ( thumbnails ) di files pdf in linux ubuntu debian

Generare miniature ( thumbnails ) di files pdf in linux ubuntu debian

ImageMagick Logo

Il modo più agevole per creare miniature da un documento pdf è far ricorso al versatile ImageMagick

Imagemagick è una  suite di comandi multi piattaforma anche a linea di comando per creare, modificare e visualizzare immagini. imagemagick consente di implementare efficaci script per processare centinaia o migliaia di file automaticamente.

Imagemagick versione 6.7.7-10 in ubuntu si installa con

sudo apt-get install imagemagick

Per convertire un singolo file pdf con una sola pagina si può utilizzare il comando convert di imagemagick con l’opzione -thumbnail

convert -thumbnail 200x120 nome-file.pdf nome-file.png

Qualora il documento avesse più pagine verrà generata una miniatura per ciascuna delle pagine presenti con nome incrementale del tipo nome-file-1.png .

I numeri 200×120 indicano la larghezza e l’altezza della miniatura. Volendo è possiblie indicare solo la larghezza. In questo caso l’altezza avrà un misura proporzionale.

Per generare una minitura del file pdf utilizzando solo la prima pagina di deve indicare il numeo di pagina subito dopo il nome del file.

Per indicare la pagina si usano le parentesi quadre e considerato che la prima pagina è la pagina zero  utilizzeremo un comando del tipo

convert -thumbnail 200 nome-file.pdf[0] nome-file.png

per avere in output lo stesso nome del file di partenza possiamo usare -set filename:

convert SilentNight.pdf[0] -set filename:_name '%t' -thumbnail 240  '%[filename:_name].png'
  • %t  filename senza directory o estensione
  • %e estensione file (suffix)
  • %f filename completo inclusa estensione

Scripts per processare più files .pdf

Qualora si desideri generare thunbnail di molti files .pdf presente in una cartella possiamo utilizzare looping basati su imagemagick oppure su shell scripts.   Considerato che il comando convert prima di effettuare le elaborazioni carica in memoria tutte le imamgini in input conviene generare looping non basati su imagemagick, lanciando convert per ogni singola immagine separatamente. Di seguito alcuni esempi :

Esempio di looping basato su imagemagick:

convert *.pdf[0] -set filename:_name '%t' -thumbnail 240  '%[filename:_name].png'

Esempio di looping non basato su imagemagick:

ls *.pdf | xargs -r -I FILE convert FILE[0] -thumbnail 240 FILE_thumb.gif

altri esempi di looping:

find * -prune -name '*.pdf' \
> -exec convert '{}' -thumbnail 240 '{}'.gif \;
for f in *.pdf; do convert $f -thumbnail 240 $f.gif; done

Se la risoluzione dello schermo è 72 dpi un foglio formato A4 avrà una dimensione di 595×841 pixels. Ovviamente se la risoluzione è 150 dpi la dimensione in pixel raddoppia 1190×1682.

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: