Ho a che fare in continuazione con file PDF e loro modifica. Mi trovo benissimo nel compiere queste operazioni via terminale, anche perché mi sbrigo prima. Mi annoto anche qui queste operazioni e le condivido con voi.
Ovviamente esistono alternative che fanno uso di strumenti grafici, come PDF Mod, PDF Chain, PDF Shuffler, PDF Split and Merge (pdfsam
).
I pacchetti usati in questo post sono: ghostscript
, pdftk
, poppler-utils
, che vanno installati se non li avete già.
Manipolazione del PDF
Unire più PDF in uno solo
pdftk input_A.pdf input_B.pdf input_C.pdf cat output output.pdf
Unire tutti i PDF di una directory in uno solo
pdftk *.pdf cat output output.pdf
Dividere un unico file PDF in tanti file PDF quante sono le sue pagine
pdftk input.pdf burst
Estrarre da PDF alcune pagine
pdftk input.pdf cat 10-20 output output.pdf
Estrarre da PDF alcune pagine non consecutive
Col seguente comando estraiamo le pagine 3, dalla 10 alla 20, 25, 28, 32, dalla 45 alla fine:
pdftk input.pdf cat 3 10-20 25 28 32 45-end output output.pdf
Ruotare un PDF di 90° a destra (clockwise)
Col seguente comando ruotiamo tutte le pagine (dalla prima alla fine) verso Est:
pdftk input.pdf cat 1-endE output output.pdf
Ruotare un PDF di 90° a sinistra (counter-clockwise)
pdftk input.pdf cat 1-endW output output.pdf
Ruotare un PDF di 180°
pdftk input.pdf cat 1-endS output output.pdf
Estrarre immagini dal PDF
È consigliabile crearsi prima una directory (ad esempio pdf_images
) dove far confluire tutte le immagini e poi dare:
pdfimages input.pdf pdf_images/
Convertire un PS in PDF
ps2pdf -dPDFSETTINGS=/screen input.ps output.pdf
dove screen può essere:
• screen
(72 dpi)
• ebook
(150 dpi)
• printer
(300 dpi)
• prepress
(300 dpi)
Convertire un PDF in PS
pdf2ps input.pdf output.ps
Ridurre le dimensioni di un PDF
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Modificare i metadati di un PDF
Estraiamo prima le informazioni esistenti in un file di testo:
pdftk input.pdf dump_data output info.txt
Modifichiamo le informazioni e reimportiamole in un nuovo PDF con:
pdftk input.pdf update_info info.txt output output.pdf
Un esempio di elenco di metadati:
InfoKey: Title InfoValue: Titolo del PDF InfoKey: Subject InfoValue: Soggetto del PDF InfoKey: Keywords InfoValue: Parole, Chiave, Del, PDF InfoKey: Author InfoValue: Autore del PDF
PDF e immagini
Convertire un PDF in PNG
convert -density 300 input.pdf output.png
Tutte le pagine saranno convertite in immagine. I file immagine risultanti avranno questo nome:
output-0.jpg --> Pagina 1 output-1.jpg --> Pagina 2 ecc.
La stessa conversione può essere effettuata con pdftoppm
, un componente di poppler-utils
.
Convertire un PDF in PNG specificando le dimensioni di uscita
convert -scale 940 input.pdf output.png
Convertire un PDF in PNG specificando la risoluzione di uscita
convert -density 300 input.pdf output.png
Estrarre da PDF una pagina e convertirla in PNG
convert input.pdf[0] output.png
0
sta per pagina 1, 1
per pagina 2 e così via.Anche in questo comando si possono usare le opzioni
-scale
e -density
.Estrarre da un PDF più pagine non consecutive e convertirle in PNG
convert -density 300 -scale 940 input.pdf[0,2,6,11,16,21,26,33,38] output.png
Convertire un PDF in un PDF immagine (rasterizzare il PDF)
convert -density 300 input.pdf output.pdf
Convertire più PNG in PDF (A4 verticale)
convert -adjoin -page 210x297 *.png output.pdf
Convertire più PNG in PDF (A4 orizzontale)
convert -adjoin -page 297x210 *.png output.pdf