At sætte flere billeder sammen til en PDF

Jeg er redaktør på Gamma – tidskrift for fysik, som er et fysikblad, der udgives af Niels Bohr instituttet med et oplag på 3000 eksemplarer. Vi har i et lang tid haft det problem af vores elektroniske arkiv kun giv tilbage til 1994 omkring nummer 100. Derfor er vi nu gået i gang med at indskanne alle de gamle numre og lave dem om til PDF’er.
Gamma90

Den besværlige måde
Min første ide var lidt for ambitiøs. Det gik ud på at åbne hver eneste dobbeltbillede i Gimp klippe den ene side ud og konvertere den til graytones og gemme den i Gimp’s native format for at undgå kvalitetstab. Da filnavnene var af logisk navngivet, som 01-02.jpg, 04-05.jpg, …, 42-43.jpg, var det ideelt at scripte sig ud af problemet. Jeg havde skrevet følgende script for at konvertere hver eneste billede til en PDF med Imagemagick-programmet convert og derefter sætte PDF’erne sammen til en PDF med pdftk. Begge programmer er gratis og tilgængelige på en hver Linux maskine.



counter=0
#counts the number of files in the folder
totalcount=`ls -l | sed -n '/\.[Xx][Cc][Ff]/p' | wc -l` 

for XcfPicture in `ls | sed -n '/\.[Xx][Cc][Ff]/p'`
do
  #Stores the pdfname in a variable
  PdfPicture=`echo "$XcfPicture" | sed -n 's/xcf/pdf/p'` 
  if [ -f $PdfPicture ]; then
    echo "PDF exists"
  else
    #If the pdf doesn't exists - the create it
    nice -n 19 convert -quality 65% -resize x1024  $XcfPicture $PdfPicture 
  fi

  #if it is the frontpage rename to tmp.pdf
  if [ $XcfPicture = "01.xcf" ]; then  
    cp $PdfPicture Gamma.pdf
  else
    pdftk Gamma.pdf $PdfPicture cat output tmp.pdf
    mv -f tmp.pdf Gamma.pdf
  fi
  let "counter +=1"
  echo "Number " $counter "of " $totalcount
done
exit 0

Problemet med denne løsning var bare at vi har over 100 numre med op til 60 sider hver som hver skulle beskæres i et Gimp. Selv om dette sikker kunne automatiseres er det alt for besværligt at gøre, især da jeg fandt en nemmere løsning.

Den nemme måde
Det viste sig at Imagemagick-programmet convert er meget mere kraftfuldt en jeg havde regnet med. Hvis jeg droppede tanke om at skille billederne fra hinanden og i stedet bruge dobbeltsider kunne jeg lave jeg danne PDF-filen med en kommando:


convert -rotate 270 -quality 75% -resize 2000x *.jpg Gamma90.pdf

Den endelig resultat
Jeg arbejde lidt med -resize parameteren og kompressionskvaliteten -quality for at få et fornuftigt forhold mellem filstørelsen og kvaliteten af PDF-filen. Jeg prøvede også at bruge -colorspace GRAY for at mindske filstørelsen, men valgte det fra da farven af forsiden alligevel var vigtig. Den endelig PDF kom til at fylde 9,5Mb og kan ses her:
http://gamma.nbi.dk/Galleri/gamma90/Gamma90.pdf

Efterhånden som vi for skannet bladene ind vil Galleriet af gamle numre på http://www.gamma.nbi.dk/ til sidst blive komplet, men det kommer nok til at tage et par år.

This entry was posted in Articles, Physics. Bookmark the permalink.

One Response to At sætte flere billeder sammen til en PDF

  1. Michael says:

    Det er smukt Tjansson! 🙂 Dejligt at du fandt en løsning til det lille problem, nu skal vi bare lige lave de resterende numre haha 🙂

Leave a Reply