Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


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