Avete bisogno di unire dei pdf? Volete ruotarne il senso delle pagine? Stamparne n pagine per foglio? Donne è arrivato l'arrot...aehm no scusate mi sono confuso XD
Dicevo, se avete bisogno di "giocare" con le pagine dei pdf che avete sotto mano, PDFjam potrebbe essere la risposta.

Di cosa si tratta? In sostanza di una collezione di script (ebbene sì, dobbiamo lavorare di terminale, ma nulla di tragico) che fanno un bel numero di cose che vedremo più avanti nel post. Innanzitutto vediamo quali sono questi script:
  • pdfnup
  • pdfjoin
  • pdf90, pdf180, pdf270
  • pdfflip
  • pdfbook
  • pdfjam-pocketmode
  • pdfjam-slides6up, pdfjam-slides3up

Per avere tutto questo popò di roba, potete tranquillamente andare qui e fare l'installazione a manina, ma credo che ci sia nei repository di un po' tutte le distribuzioni.

Per Ubuntu nel terminale diamo un bel
sudo apt-get install pdfjam
E per Fedora diamo (ovviamente da root):
yum install pdfjam

Fatto?  Bene, ora che abbiamo tutto analizziamo gli script uno alla volta.

pdfnup

Consente di creare, a partire da un pdf, un altro pdf che racchiude n pagine per foglio, con possibilità di scalarle, decidere lo spazio tra l'una e l'altra. Ma non solo.

Per esempio, io per risparmiare carta, inchiostro e avere un malloppo meno ingombrante, di solito stampo le slide delle lezioni dei miei docenti dell'Università mettendo 6 pagine per foglio.
Per fare ciò, aprendo il terminale e poi scrivendo qualcosa del genere
pdfnup --nup 2x3 FILE.pdf
ci ritroviamo nella stessa directory di quella del file di origine, un secondo pdf che ha in ogni "foglio" 6 pagine! Però potrebbero risultarci un po' troppo attaccate. Risolviamo così:
pdfnup --nup 2x3 --delta "0.2cm 0.3cm" FILE.pdf
 Se poi vogliamo spostare tutto un po' più a destra perché ce le vogliamo rilegare:
pdfnup --nup 2x3 --delta "0.2cm 0.3cm" --offset "0.5cm 0cm" FILE.pdf

Riassumendo queste opzioni:

--nup
parametro: MxN
effetto: dispone le slide in M colonne ed N righe

--delta
parametro: "Ncm Mcm"
effetto: distanzia tra loro le slide orizzontalmente di N centimetri e verticalmente di M centimetri

--offset
parametro: "Ncm Mcm"
effetto: sposta le slide orizzontalmente di N centimetri e verticalmente di M centimetri


E se vogliamo riunire più file in un unico pdf con le stesse caratteristiche possiamo scrivere ad esempio:
 pdfnup --nup 2x3 --delta "0.2cm 0.3cm" --offset "0.5cm 0" --outfile RISULTANTE.pdf FILE1.pdf FILE2.pdf FILE3.pdf
Quindi:

--outfile
parametro: nome o indirizzo(relativo o assoluto) del file risultante
effetto: assegna un nome al file risultante (di default usa l'ultimo tra quelli dei file in input e aggiunge il suffisso -nup)

Infine,  
--scale
parametro: un numero N della forma x.xx
effetto: nel pdf risultante abbiamo tutte le pagine scalate
pdfnup --scale 0.5 FILE.pdf
dove 0 corrisponde allo 0% mentre 1 al 100% (quindi 0.5 al 50%) della dimensione originaria.

Faccio notare che di opzioni ce ne sono altre e che possono essere combinate come più ci aggrada.


pdfjoin

Unisce i file, dandoci un file pdf composto dalle pagine del primo file seguito da quelle del secondo:
pdfjoin FILE1.pdf FILE2.pdf --outfile risultante.pdf


pdf90, pdf180, pdf270

Ci danno un pdf risultante in cui le pagine sono ruotate di 90°, 180° o 270° in senso antiorario. La sintassi è banale:
pdf90 FILE1.pdf

pdf180 FILE1.pdf

pdf270 FILE.pdf

E se diamo
pdf90 FILE1 FILE2 --outfile risultante.pdf

pdf180 FILE1 FILE2 --outfile risultante.pdf

pdf270 FILE1 FILE2 --outfile risultante.pdf
otteniamo che risultante.pdf è l'unione di FILE1.pdf e FILE2.pdf ma ruotati di 90°/180°/270°


pdfflip

Ci da un pdf risultante con le pagine invertite con un effetto a specchio.
pdfflip FILE1.pdf

pdfflip FILE1 FILE2 --outfile risultante.pdf

Avete capito come funziona il meccanismo no? Ma andiamo avanti.
 

pdfbook

Avete presente i libri fotocopiati? Ecco, ci fa un pdf con quell'aspetto lì:
pdfbook FILE1.pdf
E se abbiamo più file pdf sparsi:
pdfbook FILE1.pdf FILE2.pdf --outfile risultante.pdf


pdfjam-pocketmode

Prende le prime 8 pagine del pdf e crea un pdf risultante in cui le pagine costituiscono un booklet:
pdfjam-pocketmode FILE1.pdf --outfile risultante.pdf


pdfjam-slides6up e pdfjam-slides3up

Creano un pdf risultante dove abbiamo rispettivamente 6 e 3 slide per pagina (quello che abbiamo visto si può fare anche con pdfnup, che preferisco a questi perché posso impostare più parametri). Dunque:
pdfjam-slides6up FILE1.pdf

pdfjam-slides3up FILE1.pdf
ma anche
pdfjam-slides6up FILE1.pdf FILE2.pdf --outfile risultante.pdf

pdfjam-slides3up FILE1.pdf FILE2.pdf --outfile risultante.pdf
 

Ooooh, li abbiamo visti tutti! Solo una precisazione. Questi script scrivono qualcosa in output e se osserviamo attentamente il comando effettivo che viene lanciato, beh lanciano tutti pdfjam, utilizzando di volta in volta parametri giusti. Sono in sostanza dei wrapper, che in italiano potremmo tradurre come adattatori.
Spero che abbiate capito tutto. Il post è finito, andate in pace XD