
Ho a che fare in continuazione con file Acrobat 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
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.png --> Pagina 1 output-1.png --> 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
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/
Man mano che mi serviranno altri comandi, li aggiungerò in questo post.
Mitico Aldo, proprio nel momento in cui ne ho bisogno.
Grazie mille.
Sono molto contento che ti sia servito!
Ho notato che nei files PDF dopo ogni riga è come se ci fosse un nuovo paragrafo, e questo, se si vuole convertire in altri formati (nel mio caso epub) è davvero odioso (immaginatevi un libro dove ogni riga e mezzo va a capo a metà frase e lascia uno spazio: dopo una pagina si rischia di collassare!). C’è un modo per eliminare questa caratteristica?Sia con programmi su citati che con Adobe, Grazie mille in anticipo!
Con Adobe Acrobat versione completa puoi esportare il PDF in svariati formati e, se non ricordo male, restituisce un testo corretto (dipende certamente anche dalla complessità dell’impaginato).
Se non hai il programma citato, puoi operare da Gedit in modo abbastanza semplice. Apri in Gedit il file in formato testo (che avrai ottenuto con copia e incolla o salvando il PDF in formato testo). Avrai certamente linee con una andata a capo (che deve essere eliminata riunendo le righe in un paragrafo unico) e paragrafi con due andate a capo (che devono essere mantenuti). Opereremo tre sostituzioni:
1) In Gedit apri Cerca > Sostituisci e sostituisci
nn
con%N%
. Abbiamo cambiato la doppia andata a capo con quel simbolo (puoi usarne anche uno diverso).2) Sostituisci ora
n
con nulla, lasciando cioè vuoto il campo “Sostituisci con”. Abbiamo eliminato tutte le andate a capo singole e i paragrafi sono adesso riuniti.3) Sostituisci infine
%N%
connn
. Abbiamo ripristinato la doppia andata a capo e quindi i paragrafi distanziati da due battute di invio.Facci sapere se risolvi.
Vi è un insieme di funzioni/comandi per creare degli indici magari utilizzando le funzioni che operano con i metadati?
Grazie
Forse questo?
Interessante! volevo però porre un quesito com’è si può conoscere da un pdf le impostazioni di pagina (margine sx, dx, sup, inf, itestazione e piè di pagina) ed ancora come posso conoscere di una parola (font, dimensione, formato) in ambiente windows.
La prima soluzione che mi viene in mente è quella di importare il file PDF in un programma di impaginazione e misurare lì gli spazi e quant’altro.
Susate tutti, ma se questi comandi si assemblassero in un solo software di trattamento PDF,ogni tasto(con icona),voi pensate sarebbe una cattiva idea ,non
penso.
Purtroppo non sono un programmatore,altrimenti lo avrei fatto io, volentieri,non cè
nessun programmatore di linux disposto a crearlo ?
Nel post ne cito alcuni.