Experimentalia

Appunti raminghi

Cavare una copertina da un file pdf

leave a comment »

Se anche non si riesce a cavare sangue da una rapa, sicuramente è possibile creare un file immagine che rappresenti la copertina di un libro in pdf. Avendo cominciato a segnalare ebook da scaricare gratuitamente e legalmente ho dovuto imparare a creare, o estrarre delle immagini dai loro pdf per creare le copertine che accompagnano i post.

Ci sono diversi sistemi per risolvere il problema e ne vedremo alcuni, da quelli più alla portata di tutti ad altri, più comodi ma che necessitano di un terminale, che sono ugualmente alla portata di chiunque, sempre che chiunque ne sia a conoscenza o che lo scopra per errore.🙂

Il primo sistema è il più semplice ed il meno adatto ai console dipendenti (console, ovviamente intesa come terminale) consiste nell’aprire il file con un lettore di pdf, fare uno snapshot dello schermo e ritagliare e ridurre l’immagine della copertina. Ovviamente non avrei scritto un post per questo e non ammetterei mai di fare uso di un sistema simile per fare del lavoro che può tranquillamente essere fatto da terminale con il bash e qualche pacchetto per la manipolazione di pdf.

I pacchetti di cui avremo bisogno per la le altre soluzioni sono poppler-utils, imagemagick e ghostscript, confido che siano già installati sul vostro sistema, il mio cups, il sistema per la gestione delle stampanti, ad esempio, dipende sia da poppler-utils che, per la parte pdf, da ghostscript. Se non lo fossero installateli, sono molto utili a prescindere da questo post.😉

La seconda soluzione, quella che ho usato fino alla penultima copertina, consisteva nell’usate pdftoppm per convertire la prima pagina del pdfin un file pdf da convertire poi in png.

pdftoppm -f 1 -l 1 ebook.pdf | convert -scale 175x248 - copertina.png

Il commento è semplice, la prima parte del comando prende tutte le pagine a partire dalla prima (-f 1) fino alla prima (-l 1), e quindi solamente la copertina, e ne invia la conversione in file ppm sul suo standard output.
La seconda parte del comando converte il suo standard input (-) in un file png (copertina.png) e nel contempo ne riduce le dimensioni ad un rettangolo di 175×248 pixel.

Ero soddisfatto di questa soluzione quando ieri sera, complice la stanchezza e e l’ora tarda non sbaglio a digitare il comando e lo sostituisco con questo:

convert -scale 175x248 imparareC.pdf copertina.png

Dopo qualche secondo di attesa mi trovo la cartella degli ebook invasa dalle miniature di tutte le pagine del libro sul c e, appena me ne accorgo, mi vengono in mente tre cose:

  • convert può gestire direttamente i pdf,
  • così imparo a non fare uno script anche quando basta una riga di codice
  • meno male che non ho sbagliato con le ottomila e passa pagine di “Appunti di informatica libera”

A questo punto cerco di capire se è possibile convertire una singola pagina del file pdf e scopro che, non solamente è possibile ma relativamente facile, il comando precedente diventa:

convert -scale 175×246 “imparareC.pdf[0]” copertina.png

Basta accodare al nome del file le pagine da stampare tra parentesi quadre, la cosa funziona sia con una pagina singola che con intervalli, ad esempio le prime tre pagine [0-2] o con elenchi di pagine separate da virgole. L’unica accortezza da tenere a mente e che convert comincia a contare le pagine da zero anzichè da uno.

Written by Eineki

ottobre 12, 2008 a 1:38 am

Pubblicato su bash, linux, quick fix

Tagged with , , , ,

Lascia un commento

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 cliccano Mi Piace per questo: