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 16 e 46 (in 30 versioni)
Versione 16 del 19/05/2007 11.43.43
Dimensione: 1542
Commento: tolta da revisionare
Versione 46 del 11/05/2022 15.29.59
Dimensione: 8296
Autore: wilecoyote
Commento: Aggiornamento wiki Maggio 2022 ed aggiunto comando per allegerire i PDF creati
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from Grafica/ImmaginiInPdf
## page was renamed from Grafica/ConvertireJpgInPdf
## page was renamed from Multimedia/Grafica/ConvertireJpgInPdf
## page was renamed from ConvertireJpgInPdf
#format wiki
Linea 2: Linea 7:
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">[[TableOfContents(1)]]||
<<BR>>
<<Indice(depth=3)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=57533; rilasci="22.04 20.04 18.04 16.04 14.04")>>
Linea 7: Linea 14:
Questa guida contiene una semplice procedura utile a convertire e unire una lista di file di immagini in formato `.jpeg` in un unico file `.pdf`.

= Preparativi =

È necessario installare i seguenti pacchetti:
 * ''pdftk''
 * ''imagemagick''

Per maggiori informazioni sull'installazione, consultare la guida all'[:InstallareProgrammi:installazione dei programmi].

= Esecuzione =

||<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 (es. {{{1.jpeg}}}, {{{2.jpeg}}}, {{{3.jpeg}}}). ||

Prima di iniziare è necessario posizionarsi nella cartella che comprende i file `.jpeg`:
{{{
cd /percorso/della/cartella/
}}}

Convertire tutti i file `.jpeg` in formato `.pdf` (i file risultanti avranno lo stesso nome di origine) con il seguente comando: {{{
for i in *.jpg; do convert $i $i.pdf; echo $i.pdf >> tmp; done
}}}

Dunque unire e concatenare tutti i file `.pdf` in un unico file: {{{
pdftk *.pdf cat output risultato.pdf
}}}

Infine non resta che eliminare i file temporanei:
{{{
xargs rm < tmp; rm tmp
}}}
Questa guida illustra alcune procedure, da terminale e da interfaccia grafica, utili per convertire uno o più file di immagini, in qualsiasi formato, in un unico file `.pdf`.


= Installazione =

A seconda della procedura desiderata, [[AmministrazioneSistema/InstallareProgrammi|installare]] i seguenti pacchetti, se non presenti:
 
 * '''Tramite terminale''': [[apt://imagemagick | imagemagick]] (solitamente preinstallato in '''Ubuntu''' e tutte le derivate ufficiali, eccetto '''Lubuntu''').

 * '''Tramite interfaccia grafica''': [[apt://converseen |converseen]].


= Configurazione =

 0. A seconda della versione in uso, aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il seguente file:
  * Ubuntu 16.04 e successive: `/etc/ImageMagick-6/policy.xml`
  * Ubuntu 14.04: `/etc/ImageMagick/policy.xml`
 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 =

{{{#!wiki tip
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 spostarli 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 esempio `png`, `jpeg`, `tiff` ecc.) 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 con un [[Ufficio/EditorDiTesto|editor di testo]] il file `~/img2pdf`.
 0. Copiare al suo interno il seguente 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
}}}

 0. Salvare e chiudere il file.
 0. [[AmministrazioneSistema/PermessiFile#Assegnare_i_permessi_di_esecuzione|Assegnare i permessi d'esecuzione]] al file `~/img2pdf`.
 0.[[AmministrazioneSistema/ComandiBase#cp|Copiare]] il file `~/img2pdf` nella cartella `/usr/local/bin`.

=== Uso script ===

 A seconda dei casi usare lo script con una delle seguenti sintassi:
   * '''Immagine da convertire singola''':{{{
img2pdf <nomeimmagine>.<formatoimmagine>.
}}}
   * '''Immagine da convertire multipla''':{{{
img2pdf *.<formatoimmagine>
}}}

Sostituire <nome immagine> col nome dell'immagine e <formato immagine> col formato originale.


== Utilizzo interfaccia grafica ==

=== Impostazioni al primo avvio ===

 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] il programma '''Converseen'''.
 0. Per utilizzare il programma in lingua italiana seguire il menu '''File → settings''', quindi nel menu a tendina '''Language''' selezionare '''Italiano''' e premere '''Ok'''. Infine chiudere e riavviare il programma.
 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'''.
<<BR>>
 {{{#!wiki note
In questo modo le immagini convertite saranno disponibili nella directory `/home/<nomeutente>/Immagini/Converseen`.}}}
 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'''.
 0. Terminata la conversione, fare clic su '''Chiudi''' nella finestrella di controllo.
 0. Per chiudere il programma premere '''Ctrl+X'''.

{{{#!wiki tip
In alcuni casi (ad esempio se lo sfondo della pagina è trasparente) l'immagine creata viene mostrata con sfondo nero. Per correggere il problema in '''Converseen''' spuntare in basso a destra la casella '''Sostituisci lo sfondo trasparente''', quindi cliccare accanto a '''Scegli colore''' e scegliere un colore di sfondo a piacere (per le necessità più comuni si consiglia il bianco).
}}}


= Risoluzione problemi =

== File PDF pesante ==

Nel caso che il file una volta convertito in `.pdf` risultasse di molti kB o MB, si può allegerire seguendo questa procedura.

 0. Aprire un [[AmministrazioneSistema/Terminale|terminale]].
 0. [[AmministrazioneSistema/ComandiBase#cd|Spostarsi]] nella cartella dove è stato salvato il file `pdf`.
 0. Digitare il seguente comando:{{{
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dPDFSETTINGS=/default -dColorImageResolution=200 -dDownsampleColorImages=true -sOutputFile=<nome file nuovo>.pdf <nome file attuale>.pdf
}}}

Sostituire <nome file attuale> col nome del file da alleggerire, e <nome file nuovo> col nome del file alleggerito.
Linea 41: Linea 201:
 * [:ComandiBase#mv:Guida ai comandi base] come rinominare i file  * [[http://www.imagemagick.org/script/index.php|Sito ufficiale di ImageMagick]]

----
CategoryGrafica CategoryMultimedia


Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

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

Installazione

A seconda della procedura desiderata, installare i seguenti pacchetti, se non presenti:

  • Tramite terminale: imagemagick (solitamente preinstallato in Ubuntu e tutte le derivate ufficiali, eccetto Lubuntu).

  • Tramite interfaccia grafica: converseen.

Configurazione

  1. A seconda della versione in uso, aprire con un editor di testo e con i privilegi di amministrazione il seguente file:

    • Ubuntu 16.04 e successive: /etc/ImageMagick-6/policy.xml

    • Ubuntu 14.04: /etc/ImageMagick/policy.xml

  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 spostarli 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 esempio png, jpeg, tiff ecc.) 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 con un editor di testo il file ~/img2pdf.

  2. Copiare al suo interno il seguente 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
  3. Salvare e chiudere il file.
  4. Assegnare i permessi d'esecuzione al file ~/img2pdf. 0.Copiare il file ~/img2pdf nella cartella /usr/local/bin.

Uso script

  • A seconda dei casi usare lo script con una delle seguenti sintassi:
    • Immagine da convertire singola:

      img2pdf <nomeimmagine>.<formatoimmagine>.
    • Immagine da convertire multipla:

      img2pdf *.<formatoimmagine>

Sostituire <nome immagine> col nome dell'immagine e <formato immagine> col formato originale.

Utilizzo interfaccia grafica

Impostazioni al primo avvio

  1. Avviare il programma Converseen.

  2. Per utilizzare il programma in lingua italiana seguire il menu File → settings, quindi nel menu a tendina Language selezionare Italiano e premere Ok. Infine chiudere e riavviare il programma.

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

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


  • In questo modo le immagini convertite saranno disponibili nella directory /home/<nomeutente>/Immagini/Converseen.

  • 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.

  5. Terminata la conversione, fare clic su Chiudi nella finestrella di controllo.

  6. Per chiudere il programma premere Ctrl+X.

In alcuni casi (ad esempio se lo sfondo della pagina è trasparente) l'immagine creata viene mostrata con sfondo nero. Per correggere il problema in Converseen spuntare in basso a destra la casella Sostituisci lo sfondo trasparente, quindi cliccare accanto a Scegli colore e scegliere un colore di sfondo a piacere (per le necessità più comuni si consiglia il bianco).

Risoluzione problemi

File PDF pesante

Nel caso che il file una volta convertito in .pdf risultasse di molti kB o MB, si può allegerire seguendo questa procedura.

  1. Aprire un terminale.

  2. Spostarsi nella cartella dove è stato salvato il file pdf.

  3. Digitare il seguente comando:

    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dPDFSETTINGS=/default -dColorImageResolution=200 -dDownsampleColorImages=true -sOutputFile=<nome file nuovo>.pdf <nome file attuale>.pdf

Sostituire <nome file attuale> col nome del file da alleggerire, e <nome file nuovo> col nome del file alleggerito.

Ulteriori risorse


CategoryGrafica CategoryMultimedia