imagemagick, convertire molti file
- leonardo2887
- Scoppiettante Seguace

- Messaggi: 259
- Iscrizione: venerdì 2 marzo 2007, 16:14
- Contatti:
imagemagick, convertire molti file
Salve a tutti,
avrei molti file .png da convertire in .pdf, e pensavo di usare imagemagick. Dato che si tratta di più di 300 immagini (è un libro di google books), cercavo un comando per concertirli tutti. Ho provato con
convert *.png *.pdf
e
convert *.png .pdf
ma converte solo un file, sapreste consigliarmi un comando che li converta tutti i file da png a pdf senza cambirgli di nome?
Grazie in anticipo per le risposte
avrei molti file .png da convertire in .pdf, e pensavo di usare imagemagick. Dato che si tratta di più di 300 immagini (è un libro di google books), cercavo un comando per concertirli tutti. Ho provato con
convert *.png *.pdf
e
convert *.png .pdf
ma converte solo un file, sapreste consigliarmi un comando che li converta tutti i file da png a pdf senza cambirgli di nome?
Grazie in anticipo per le risposte
Re: imagemagick, convertire molti file
convert lavora con un file per volta quindi è meglio usare un ciclo for:
Codice: Seleziona tutto
for file in *.png; do
convert "$file" ${file%.png}.pdf;
doneRaising Elephants Is So Utterly Boring
- leonardo2887
- Scoppiettante Seguace

- Messaggi: 259
- Iscrizione: venerdì 2 marzo 2007, 16:14
- Contatti:
Re: imagemagick, convertire molti file
Grazie mille per il suggerimento,
non conoscevo il ciclo for, andrò a studiarmelo un pochino
non conoscevo il ciclo for, andrò a studiarmelo un pochino
-
as-far-as-i-know
- Entusiasta Emergente

- Messaggi: 1096
- Iscrizione: martedì 26 maggio 2009, 13:23
Re: imagemagick, convertire molti file
Penso che per il tuo libro ti possa essere utile la seguente procedura. Copi tutte le tue figure su una cartella (es. aaa) della tua directory di lavoro, per es. /home/nomeutente, e poi digiti
Otterrai, su /home/nomeutente, un unico file pdf con tutte le immagini che occupano una pagina ciascuna.
Puoi anche ridurre globalmente le dimensioni dei file .png originari, usando quest'altro comando, con l'opzione resize:
Ciao
Codice: Seleziona tutto
convert aaa/*.png MioLibro.pdf
Puoi anche ridurre globalmente le dimensioni dei file .png originari, usando quest'altro comando, con l'opzione resize:
Codice: Seleziona tutto
convert -resize 800x600 aaa/*.png MioLibro2.pdf
Message to Canonical: I dislike Unity and am ready to migrate somewhere. From Ubuntu 6.10 to 11.04 with love, thank you!
- leonardo2887
- Scoppiettante Seguace

- Messaggi: 259
- Iscrizione: venerdì 2 marzo 2007, 16:14
- Contatti:
Re: imagemagick, convertire molti file
grazie per quest'altro consiglio... la cosa strana è che nel libro pdf risultante le pagine non sono nell'ordine con cui sono nominati i file .png. Mi spiego meglio, i file sono nominati p1, p2, ... p500, ma nel libro non sono nello stesso ordine...
-
as-far-as-i-know
- Entusiasta Emergente

- Messaggi: 1096
- Iscrizione: martedì 26 maggio 2009, 13:23
Re: imagemagick, convertire molti file
Basta installare, via synaptic (gestione pacchetti) il programmino pdfshuffler, che ti permette di spostare a piacere le pagine di MioLibro.pdf. L'ho provato tempo fa con un pdf di una ventina di pagine e la manovra è andata a buon fine. Con 500 pagine .... non saprei dirti! Prova.leonardo2887 ha scritto: grazie per quest'altro consiglio... la cosa strana è che nel libro pdf risultante le pagine non sono nell'ordine con cui sono nominati i file .png. Mi spiego meglio, i file sono nominati p1, p2, ... p500, ma nel libro non sono nello stesso ordine...
Ciao
Message to Canonical: I dislike Unity and am ready to migrate somewhere. From Ubuntu 6.10 to 11.04 with love, thank you!
Re: imagemagick, convertire molti file
Non sapevo che convert potesse unire più immagini in un unico file pdf 
Il tuo problema forse è dovuto al fatto che *.png non segue l'ordine che vuoi tu quando viene espanso.
Per imporre un ordine numerico puoi usare printf:
Il tuo problema forse è dovuto al fatto che *.png non segue l'ordine che vuoi tu quando viene espanso.
Per imporre un ordine numerico puoi usare printf:
Codice: Seleziona tutto
convert $(printf "p%d.png " {1..500}) output.pdfRaising Elephants Is So Utterly Boring
Re: imagemagick, convertire molti file
Ho provato a usare il tuo comando per fare la stessa cosa; io ho file che si chiamano books, books(1), books(2), ...takeshi ha scritto: Non sapevo che convert potesse unire più immagini in un unico file pdf
Il tuo problema forse è dovuto al fatto che *.png non segue l'ordine che vuoi tu quando viene espanso.
Per imporre un ordine numerico puoi usare printf:
Codice: Seleziona tutto
convert $(printf "p%d.png " {1..500}) output.pdf
Il comando corretto sarebbe questo?
Codice: Seleziona tutto
convert $(printf "books(%)d" {1..500}) output.pdfCodice: Seleziona tutto
bash: printf: ")": formato del carattere non validoLa versione che ho io sembra funzionare solo senza estensioni per i file immagine in input.
Re: imagemagick, convertire molti file
printf si aspetta che dopo il simbolo % ci sia qualcosa di ben preciso (qua trovi
la documentazione per la funzione omonima del linguaggio C).
Usa:
Volendo puoi anche evitare printf:

la documentazione per la funzione omonima del linguaggio C).
Usa:
Codice: Seleziona tutto
convert $(printf "books(%d) " {1..500}) output.pdfVolendo puoi anche evitare printf:
Codice: Seleziona tutto
convert "books("{1..500}")" output.pdfMi sembra strano, ma se a te funziona meglio cosi`P.S: l'estensione .png del file l'ho tolta perchè altrimenti non funziona il comando convert.
La versione che ho io sembra funzionare solo senza estensioni per i file immagine in input.
Raising Elephants Is So Utterly Boring
Re: imagemagick, convertire molti file
Per sistemare più immagini con convert nell'ordine corretto io ho trovato quest'altro metodo.
Ho rinominato i files che mi servivano con Gprename affinché avessero tutti 3 cifre partendo quindi da 001 fino a quel che mi serviva, perché il problema è che convert fa lo "scherzetto" di numerare le pagine da 1 a 10 in questo modo:
1
10
2
3
4
5
6
7
8
9
Ma se si imposta la sequenza a 3, o 4, cifre li numera correttamente così:
001
002
003
004
005
006
007
008
009
010
Ciao spero che possa essere utile a qualcun altro di passaggio! (b2b)
Ho rinominato i files che mi servivano con Gprename affinché avessero tutti 3 cifre partendo quindi da 001 fino a quel che mi serviva, perché il problema è che convert fa lo "scherzetto" di numerare le pagine da 1 a 10 in questo modo:
1
10
2
3
4
5
6
7
8
9
Ma se si imposta la sequenza a 3, o 4, cifre li numera correttamente così:
001
002
003
004
005
006
007
008
009
010
Ciao spero che possa essere utile a qualcun altro di passaggio! (b2b)
Debian Testing amd64 - Programma preferito: Inkscape
Iceweasel logo - Greasemonkey raccolta di script utili
Iceweasel logo - Greasemonkey raccolta di script utili
- c_estrena
- Scoppiettante Seguace

- Messaggi: 626
- Iscrizione: lunedì 10 luglio 2006, 20:04
- Distribuzione: Debian Wheezy
- Località: franssia
Re: imagemagick, convertire molti file
Grazie mille dei suggerimenti, gprename non lo conoscevo (ho provato con il corrispondente rename da linea di comando, ma il perl mi è un po' ostico) e funziona benissimo...ma ho l'impressione che effettivamente sia possibile attribuire dei numeri su tre cifre perché convert li metta in ordine, ma c'è un problema da qualche parte lo stesso
Con Flashgot e lo script di greasemonkey, quando scarico tutte le immagini in una cartella, e poi le rinomino, si mescolano tutte come se gprename facesse lo stessp errore di convert...ovvero PA10=002 dopo PA1=001 e così di seguito per cui mi mette prima 122 che 13!!
Ho risolto sempre con gprename sostituendo PA con PA00!
grande!
Con Flashgot e lo script di greasemonkey, quando scarico tutte le immagini in una cartella, e poi le rinomino, si mescolano tutte come se gprename facesse lo stessp errore di convert...ovvero PA10=002 dopo PA1=001 e così di seguito per cui mi mette prima 122 che 13!!
Ho risolto sempre con gprename sostituendo PA con PA00!
grande!
sfidami: http://skblmomega.labrute.fr
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti