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
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
Cercare la riga:
<policy domain="coder" rights="none" pattern="PDF" />
Modificare la riga in:
<!--policy domain="coder" rights="none" pattern="PDF" /-->
- 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
Avviare il terminale.
Spostarsi nella directory che contiene le immagini da convertire.
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.
Aprire con un editor di testo il file ~/img2pdf.
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
- Salvare e chiudere il file.
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
Avviare il programma Converseen.
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.
Scorrere il Pannello delle azioni fino a Opzioni di output fare clic su […] e selezionare la directory Immagini.
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
Fare clic su Apri immagini, selezionare la directory che contiene le immagini da convertire e selezionare tutto il contenuto.
Spuntare nella finestra le immagini da convertire, oppure in alto fare clic sull'icona Spunta tutto.
Impostare sotto la finestra nel menù a tendina Converti in: PDF - (Portable Document Format).
Fare clic sull'icona Converti.
Terminata la conversione, fare clic su Chiudi nella finestrella di controllo.
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.
Aprire un terminale.
Spostarsi nella cartella dove è stato salvato il file pdf.
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.