Vai al contenuto

PDF cheatsheet

Pubblicato:

Il Portable Document Format (PDF) è forse uno dei formati di file più diffusi per la condivisione di documenti. Persino mia mamma, lungi dall’essere un’esperta informatica, è in grado di riconoscere il formato in cui riceve le circolari scolastiche via email.
La sua popolarità, unita al fatto che sia sufficiente un browser per visualizzarli, lo rende la scelta ideale per esportare i propri lavori senza doversi preoccupare di problemi di compatibilità.
Ma questo lo sapete già. Quello che mi interessa raccogliere in questa pagina sono una serie di comandi utili per manipolare file PDF da linea di comando, invece di doversi affidare a siti web che offrono dubbie garanzie sulla privacy. Senza contare il fatto che, lavorando il locale, si ha la possibilità di automatizzare il processo e manipolare un gran numero di file in pochi secondi.

Comandi utili

# Metodo veloce per concatenare più file PDF in un unico file PDF
pdfunite [file1.pdf file2.pdf ...] out.pdf
# Esempio:
pdfunite capitolo1.pdf capitolo2.pdf capitolo3.pdf libro_completo.pdf
# Metodo più generale per concatenare più file PDF in un unico file PDF
qpdf --empty --pages [file1.pdf inizio-fine file2.pdf inizio-fine ...] out.pdf
# Esempio:
qpdf --empty --pages file1.pdf 1-8 file2.pdf 1 file1.pdf 10-16 file3.pdf 1 file1.pdf 18-19 -- out.pdf
# Conversione da immagini a PDF
img2pdf immagine1.jpg [--imgsize <larghezza>x<altezza>] -o out.pdf
# Esempio:
img2pdf immagine1.jpg --imgsize 33.9cmx20cm -o out.pdf
# Estrazione di tutte le pagine di un PDF in immagini PNG
pdfimages -png in.pdf out_prefix
# Esempio:
pdfimages -png file1.pdf img-

Da Reveal.js a PDF

Reveal.js è un popolare framework per creare presentazioni in HTML. Normalmente è sufficiente visitare l’URL della presentazione ed aggiungere ?print-pdf alla fine per ottenere una versione PDF della presentazione. Tuttavia, questo metodo non funziona sempre, specialmente quando si utilizzano funzionalità avanzate come i frammenti o le animazioni. In questi casi, un’ottima alternativa è utilizzare Decktape.

# Convertire una presentazione Reveal.js in PDF
decktape reveal url out.pdf [--fragments] [--screenshots]
# Esempio:
decktape reveal http://localhost:8000/presentazione.html out.pdf --fragments --screenshots