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 35 e 38 (in 3 versioni)
Versione 35 del 12/01/2019 15.02.10
Dimensione: 2105
Autore: wilecoyote
Commento:
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 11: Linea 11:
Questa guida contiene una semplice procedura utile per convertire e unire una lista di file di immagini in formato `.jpeg` in un unico file `.pdf`. 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 13: Linea 13:
= Preparativi = = Installazione =
Linea 15: Linea 15:
 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://imagemagick | imagemagick]].
 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/etc/ImageMagick-6/policy.xml`.
 0. Cercare la riga contenente il seguente testo:{{{
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:{{{
Linea 25: Linea 29:
= Esecuzione = = Utilizzo =
Linea 27: Linea 31:
||<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 la procedura è consigliato ordinare i file di origine assegnando loro dei nomi numerici (ad esempio `1.jpeg`, `2.jpeg`, `3.jpeg` ecc.). || ||<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.||
Linea 29: Linea 33:
 0. Aprire un [[AmministrazioneSistema/Terminale|terminale]] e [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] nella cartella che comprende i file `.jpeg` digitando: {{{
cd /percorso/della/cartella/
== 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 32: Linea 127:
 sostituendo la dicitura «`/percorso/della/cartella/`» con il nome della directory.
Linea 34: Linea 128:
 0. Convertire tutti i file `.jpeg` in formato `.pdf` con il comando: {{{
convert *.jpeg Risultato.pdf
 0. Salvare col nome `img2pdf` e chiudere il file.
 0. Dare i permessi d'esecuzione allo script:{{{
chmod +x img2pdf
Linea 37: Linea 132:
 sostituendo la dicitura «`Risultato.pdf`» con il nome del file che si vuole creare.  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>
}}}

== Utilizzo interfaccia grafica ==

=== 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`.''||
Linea 42: Linea 167:
 *[[https://askubuntu.com/questions/1081895/trouble-with-batch-conversion-of-png-to-pdf-using-convert|Convertire PNG in PDF]]


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