Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Grafica/ConvertireImmaginiInPdf"
Differenze tra le versioni 2 e 38 (in 36 versioni)
Versione 2 del 23/01/2007 00.00.35
Dimensione: 1259
Autore: LeoIannacone
Commento: Un po' di stile. Inserito un nuovo pacchetto fondamentale.
Versione 38 del 28/01/2019 00.02.08
Dimensione: 6779
Autore: jeremie2
Commento: Revisione
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from Multimedia/Grafica/ConvertireJpgInPdf
## page was renamed from ConvertireJpgInPdf
#format wiki
Linea 2: Linea 5:
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">[[TableOfContents]]||
<<BR>>
<<Indice(depth=2)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=57533; rilasci="18.04 16.04 14.04")>>
Linea 5: Linea 9:
= Convertire più immagini JPEG in un unico documento PDF = = Introduzione =
Linea 7: Linea 11:
Se vi è mai capitato di avere una lista di file di immagini in formato '''JPEG''' e di volerli unire in un file '''PDF''', ecco la semplice procedura. Questa guida illustra alcune procedure, da terminale e da interfaccia grafica, utili a convertire uno o più file di immagini in qualsiasi formato in un unico file `.pdf`.
Linea 9: Linea 13:
== Pacchetti neccessari ==
Installare i seguenti pacchetti: ''gs'' ''pdftk'' ''imagemagick''.
{{{
sudo apt-get install gs pdftk imagemagick
= Installazione =

Se si utilizza '''Lubuntu''' è necessario [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://imagemagick | imagemagick]].<<BR>>
In Ubuntu e nelle derivate ufficiali '''Imagemagick''' è preinstallato.

= Configurazione =

 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/ImageMagick-6/policy.xml` per i rilasci dal 16.04 in poi, o il file `/etc/ImageMagick/policy.xml` per i rilasci fino al 14.04.
 0. Cercare la riga:{{{
<policy domain="coder" rights="none" pattern="PDF" />
}}}
 0. Modificare la riga in:{{{
 <!--policy domain="coder" rights="none" pattern="PDF" /-->
}}}
 0. Salvare e chiudere il file.

= Utilizzo =

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Prima di seguire una delle procedure riportate, è consigliabile ordinare i file di origine assegnando loro dei nomi numerici (es. `01.jpeg`, `02.jpeg`, `03.jpeg`) e spostandoli in una cartella dedicata.||

== Comandi da terminale ==

 0. Avviare il [[AmministrazioneSistema/Terminale|terminale]].
 0. [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] nella directory che contiene le immagini da convertire.
 0. Convertire tutti i file nel formato `.pdf` con il seguente comando:{{{
convert *.<formatoimmagine> Risultato.pdf
}}}Sostituendo la dicitura `formatoimmagine` con il formato dell'immagine (ad es. `png`, `jpeg`, `tiff`..) e `Risultato.pdf` con il nome del file che si vuole creare.

== Utilizzo tramite script ==

Il seguente [[Programmazione/Script|script]] è particolarmente utile per mantenere le corrette proporzioni delle immagini per la stampa in formato `.pdf` su foglio di dimensioni A4.

 0. Aprire un [[Ufficio/EditorDiTesto|editor di testo]] e copiare al suo interno lo script:{{{
#!
#!/bin/bash

# dipende da: bc imagemagick poppler-utils
# in Ubuntu dovrebbero essere pre-installati

:<<FORMULE
Pixels ÷ DPI = Inches
Pixels ÷ Inches = DPI
DPI x Inches = Pixels

formato A4 in pollici:
8.27 x 11.69
FORMULE

# dal formato A4 tolgo 1" per i margini (sup + inf; dx + sn): 0.5 + 0.5
wInches=7.27
hInches=10.69

CLIError="\n
Errore negli argomenti. La sintassi deve essere:\n
\n
    $(basename $0) </PERCORSO/IMMAGINE> [</PERCORSO/ALTRAIMMAGINE>] [...]
\n"
if [[ ! -f $1 ]]; then
    echo -e $CLIError
    exit
fi

nomefile=$(basename "$1")
tempdir="/tmp/${nomefile%.*}/"
outfile=$(dirname "$1")/${nomefile%.*}.pdf

#crea la cartella dei file temporanei e ci si sposta
mkdir -p "$tempdir"

for infile in "$@"; do
    #infile="${path}$infile"
   
    # estrae le dimensioni in pixel dell'immagine
    read w h <<<$(identify -ping -format '%w %h' "$infile")
   
    # calcola il DPI nella pagina A4
    DPI=$(bc <<< "($w/$wInches+0.5)/1") # floating point arrotondato all'intero

    # calcola il n° di pixel verticali nella pagina A4 con quel DPI
    PPP=$(bc <<< "($DPI*10.69+0.5)/1") # floating point arrotondato all'intero

    # calcola il n° di pagine A4 necessarie
    # se restano pixel va aggiunta un'ultima pagina
    resto=$((h%PPP))
    [ $resto = 0 ] || ceiling=1; NPimg=$((h/PPP+ceiling))

    # a partire dall'immagine ne crea tante quante sono le pagine necessarie
    offset=0
    ((NPtot+=NPimg))
    for i in $(seq -f '%03g' $((1+NPtot-NPimg)) $NPtot); do
        convert "$infile" -crop ${w}x${PPP}+0+$offset "$tempdir${i}.png"
        # mette una cornice bianca di 0.5 inches per lato
        convert "$tempdir${i}.png" -bordercolor white \
                 -border $((DPI/2)) "$tempdir${i}.png"
        ((offset+=PPP))
    done
    # aggiunge all'ultima pagina il necessario margine bianco inferiore
    finale=$((PPP-resto))
    convert "$tempdir${i}.png" -gravity south \
             -background white -splice 0x$finale "$tempdir${i}.png"
done

# poi le converte in formato pdf
for png in "$tempdir"*.png; do
    convert $png -page A4 ${png/.*}.pdf
done

if [ $h -le $PPP -a $# = 1 ] # quando h <= PPP il PDF ha una sola pagina
then
    cp "$tempdir${i}.pdf" "$outfile"
else
    pdfunite "$tempdir"*.pdf "$outfile"
fi
Linea 15: Linea 128:
== Esecuzione comandi fondamentali ==

Questo comando converte tutti i file '''JPEG''' contenuti nella cartella in equivalenti in formato '''PDF''':
{{{
for i in *.jpg; do convert $i $i.pdf; done
 0. Salvare col nome `img2pdf` e chiudere il file.
 0. Dare i permessi d'esecuzione allo script:{{{
chmod +x img2pdf
Linea 21: Linea 132:
Questo comando unisce e concatena tutti i file '''PDF''' nella cartella in un unico file chiamato `output.pdf` (inserire eventualmente un nome alternativo):
{{{
pdftk *.pdf cat output output.pdf
 0. Creare la directory d'allocazione:{{{
sudo mkdir -p /usr/local/bin
}}}
 0. Copiare il file nella directory creata digitando il comando:{{{
sudo cp img2pdf /usr/local/bin/
}}}
 0. Usare lo script con la seguente sintassi:{{{
img2pdf nomeimmagine.<formatoimmagine>.
}}} o se trattasi di più immagini con la sintassi:{{{
img2pdf *.<formatoimmagine>
Linea 26: Linea 144:
== Note ==
La procedura descritta è particolarmente funzionale quando i file '''JPEG''' sono ordinati tramite una numerazione (es.1.jpg,2.jpg,...,n.jpg).
== Utilizzo interfaccia grafica ==
Linea 29: Linea 146:
Ricordarsi eventualmente di fare pulizia nella cartella tramite comando: {{{
rm xxx.pdf
}}}
=== Impostazioni al primo avvio ===

 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] il programma '''Converseen'''.
 0. Fare clic su '''File → settings''', nel menù a tendina selezionare '''Italiano''', premere '''Ok'''.
 0. Scorrere il '''Pannello delle azioni''' fino a '''Opzioni di output'''fare clic su '''[…]''' e selezionare la directory '''Immagini'''.
 0. Fare clic su '''Nuova cartella''', digitare '''Converseen''' e fare clic su '''OK'''.
 0. Chiudere e riavviare '''Converseen'''.

=== Utilizzo ===

 0. Fare clic su '''Apri immagini''', selezionare la directory che contiene le immagini da convertire e selezionare tutto il contenuto.
 0. Spuntare nella finestra le immagini da convertire, oppure in alto fare clic sull'icona '''Spunta tutto'''.
 0. Impostare sotto la finestra nel menù a tendina '''Converti in:''' '''PDF - (Portable Document Format)'''.
 0. Fare clic sull'icona '''Converti'''. Nella finestrella di controllo terminata la conversione fare clic su '''Chiudi'''.
 0. Per chiudere il programma premere '''Ctrl+X'''.

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>{{attachment:Icone/Piccole/note.png}} ||<style="border:none;">''Le immagini convertite sono rese disponibili nella directory `/home/<nomeutente>/Immagini/Converseen`.''||

= Ulteriori risorse =

 * [[http://www.imagemagick.org/script/index.php|Sito ufficiale di ImageMagick]]
Linea 34: Linea 169:
CategoryNuoviDocumenti CategoryNuoviDocumenti CategoryGrafica CategoryMultimedia


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida illustra alcune procedure, da terminale e da interfaccia grafica, utili a convertire uno o più file di immagini in qualsiasi formato in un unico file .pdf.

Installazione

Se si utilizza Lubuntu è necessario Installare il pacchetto imagemagick.
In Ubuntu e nelle derivate ufficiali Imagemagick è preinstallato.

Configurazione

  1. Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/ImageMagick-6/policy.xml per i rilasci dal 16.04 in poi, o il file /etc/ImageMagick/policy.xml per i rilasci fino al 14.04.

  2. Cercare la riga:

    <policy domain="coder" rights="none" pattern="PDF" />
  3. Modificare la riga in:

     <!--policy domain="coder" rights="none" pattern="PDF" /-->
  4. Salvare e chiudere il file.

Utilizzo

Prima di seguire una delle procedure riportate, è consigliabile ordinare i file di origine assegnando loro dei nomi numerici (es. 01.jpeg, 02.jpeg, 03.jpeg) e spostandoli in una cartella dedicata.

Comandi da terminale

  1. Avviare il terminale.

  2. spostarsi nella directory che contiene le immagini da convertire.

  3. Convertire tutti i file nel formato .pdf con il seguente comando:

    convert *.<formatoimmagine> Risultato.pdf

    Sostituendo la dicitura formatoimmagine con il formato dell'immagine (ad es. png, jpeg, tiff..) e Risultato.pdf con il nome del file che si vuole creare.

Utilizzo tramite script

Il seguente script è particolarmente utile per mantenere le corrette proporzioni delle immagini per la stampa in formato .pdf su foglio di dimensioni A4.

  1. Aprire un editor di testo e copiare al suo interno lo script:

    #!/bin/bash
    
    # dipende da:  bc  imagemagick  poppler-utils
    # in Ubuntu dovrebbero essere pre-installati
    
    :<<FORMULE
    Pixels ÷ DPI = Inches
    Pixels ÷ Inches = DPI
    DPI x Inches = Pixels
    
    formato A4 in pollici:
    8.27 x 11.69
    FORMULE
    
    # dal formato A4 tolgo 1" per i margini (sup + inf; dx + sn): 0.5 + 0.5
    wInches=7.27
    hInches=10.69
    
    CLIError="\n
    Errore negli argomenti.  La sintassi deve essere:\n
    \n
        $(basename $0) </PERCORSO/IMMAGINE> [</PERCORSO/ALTRAIMMAGINE>] [...]
    \n"
    if [[ ! -f $1 ]]; then
        echo -e $CLIError
        exit
    fi
    
    nomefile=$(basename "$1")
    tempdir="/tmp/${nomefile%.*}/"
    outfile=$(dirname "$1")/${nomefile%.*}.pdf
    
    #crea la cartella dei file temporanei e ci si sposta
    mkdir -p "$tempdir"
    
    for infile in "$@"; do
        #infile="${path}$infile"
       
        # estrae le dimensioni in pixel dell'immagine
        read w h <<<$(identify -ping -format '%w %h' "$infile")
       
        # calcola il DPI nella pagina A4
        DPI=$(bc <<< "($w/$wInches+0.5)/1") # floating point arrotondato all'intero
    
        # calcola il n° di pixel verticali nella pagina A4 con quel DPI
        PPP=$(bc <<< "($DPI*10.69+0.5)/1") # floating point arrotondato all'intero
    
        # calcola il n° di pagine A4 necessarie
        # se restano pixel va aggiunta un'ultima pagina
        resto=$((h%PPP))
        [ $resto = 0 ] || ceiling=1; NPimg=$((h/PPP+ceiling))
    
        # a partire dall'immagine ne crea tante quante sono le pagine necessarie
        offset=0
        ((NPtot+=NPimg))
        for i in $(seq -f '%03g' $((1+NPtot-NPimg)) $NPtot); do
            convert "$infile" -crop ${w}x${PPP}+0+$offset "$tempdir${i}.png"
            # mette una cornice bianca di 0.5 inches per lato
            convert "$tempdir${i}.png" -bordercolor white \
                     -border $((DPI/2)) "$tempdir${i}.png"
            ((offset+=PPP))
        done
        # aggiunge all'ultima pagina il necessario margine bianco inferiore
        finale=$((PPP-resto))
        convert "$tempdir${i}.png" -gravity south \
                 -background white -splice 0x$finale "$tempdir${i}.png"
    done
    
    # poi le converte in formato pdf
    for png in "$tempdir"*.png; do
        convert $png -page A4 ${png/.*}.pdf
    done
    
    if [ $h -le $PPP -a $# = 1 ] # quando h <= PPP il PDF ha una sola pagina
    then
        cp "$tempdir${i}.pdf" "$outfile"
    else
        pdfunite "$tempdir"*.pdf "$outfile"
    fi
  2. Salvare col nome img2pdf e chiudere il file.

  3. Dare i permessi d'esecuzione allo script:

    chmod +x img2pdf
  4. Creare la directory d'allocazione:

    sudo mkdir -p /usr/local/bin
  5. Copiare il file nella directory creata digitando il comando:

    sudo cp img2pdf /usr/local/bin/
  6. Usare lo script con la seguente sintassi:

    img2pdf nomeimmagine.<formatoimmagine>.

    o se trattasi di più immagini con la sintassi:

    img2pdf *.<formatoimmagine>

Utilizzo interfaccia grafica

Impostazioni al primo avvio

  1. Avviare il programma Converseen.

  2. Fare clic su File → settings, nel menù a tendina selezionare Italiano, premere Ok.

  3. Scorrere il Pannello delle azioni fino a Opzioni di outputfare clic su […] e selezionare la directory Immagini.

  4. Fare clic su Nuova cartella, digitare Converseen e fare clic su OK.

  5. Chiudere e riavviare Converseen.

Utilizzo

  1. Fare clic su Apri immagini, selezionare la directory che contiene le immagini da convertire e selezionare tutto il contenuto.

  2. Spuntare nella finestra le immagini da convertire, oppure in alto fare clic sull'icona Spunta tutto.

  3. Impostare sotto la finestra nel menù a tendina Converti in: PDF - (Portable Document Format).

  4. Fare clic sull'icona Converti. Nella finestrella di controllo terminata la conversione fare clic su Chiudi.

  5. Per chiudere il programma premere Ctrl+X.

Icone/Piccole/note.png

Le immagini convertite sono rese disponibili nella directory /home/<nomeutente>/Immagini/Converseen.

Ulteriori risorse


CategoryGrafica CategoryMultimedia