Creare un PDF da un gruppo di immagini

Come posso fare per creare un file PDF multipagina partendo da un gruppo di immagini? Ribalto la domanda: se ho scansionato pagina per pagina un manuale di uso e manutenzione di trattore, una brochure o altro* come posso fare per ottenere un unico file PDF?

Nei primi tentativi ho utilizzato OpenOffice: ho aperto un nuovo progetto presentazione in cui ho inserito un'immagine per ogni pagina salvando il documento in formato PDF... che palle se ho molte immagini...

Mi serve un software, possibilmente su Linux, che faccia tutto in automatico una volta fornita la lista delle immagini da inserire nel PDF. Cercando un po' su Google mi sono imbattuto nel vecchio blog di Simone Sollena che proponeva uno script bash in grado di creare un sorgente LaTeX da compilare per ottenere un PDF. Ho leggermente modificato lo script aggiungendo la possibilità di impostare il verso delle pagine (orizzontale o verticale).

Come si esegue? Salvare il codice qui sotto in un file chiamato images2latex.sh e posizionarlo all'interno della cartella contenente le immagini.
#!/bin/bash
case "$1" in
-v ) echo '\documentclass[portrait,twoside]{book}' > output.tex;;
-o ) echo '\documentclass[landscape,twoside]{book}' > output.tex;;
* ) echo 'ERRORE: Non hai specificato l orientamento delle foto:'
echo ' -v per verticale'
echo ' -o per orizzontale'
exit -1;;
esac
echo '\usepackage{graphicx}' >> output.tex
echo '\usepackage[hmargin=0mm,vmargin=0mm]{geometry}' >> output.tex
echo >> output.tex
echo '\begin{document}' >> output.tex
for Immagine in $(ls *.jpg | sort); {
echo '\begin{figure}[p]' >> output.tex
echo '\centering' >> output.tex
case "$1" in
-v ) echo -n '\includegraphics[height=\textheight]{' >> output.tex;;
-o ) echo -n '\includegraphics[width=\textwidth]{' >> output.tex;;
esac
echo -n $Immagine >> output.tex
echo '}' >> output.tex
echo '\end{figure}' >> output.tex
echo '\clearpage' >> output.tex
}
echo '\end{document}' >> output.tex

Aggiungere i permessi di esecuzione al file creato:
chmod +x images2latex.sh

Se non lo si ha già installato, è necessario installare il compilatore LaTeX nel proprio sistema. Su Ubuntu è sufficiente scrivere:
sudo apt-get install texlive

Poi è possibile lanciare il programma di conversione specificando l'orientamento delle pagine:
./images2latex.sh -o

./images2latex.sh -v

Ottenuto il file output.tex è possibile compilarlo per ottenere il file output.pdf con il comando:
pdflatex output.tex

Volevo fare una cosa simile anche per Windows, ma non sono stato capace di scrivere il file batch corrispondente a image2latex.sh.


__________________________________________
* tutto senza ledere i diritti di autore di alcuno.

0 commenti:

Posta un commento