Pither.com / Simon
Development, systems administration, parenting and business

Multiple page scan to PDF

Xsane does do this, but it's an awful lot of clicks, even between pages and that's after you've got to the right screen and before you eventually output the file.

So here's a simple bash script to the rescue...

#!/bin/bash

export DEVICE="device, use 'scanimage -L' to see list"

echo Pages: $1
echo Filename: $2

FILENAME_BASE="/tmp/$2"

for (( i = 1; $i <= $1; i++ )); do
        echo Press ENTER to scan page $i
        read
        export FILENAME="$FILENAME_BASE.page.$i"
        scanimage -d "$DEVICE" > "$FILENAME.pnm"
        pnmtops --width=8.27 --height=11.69 "$FILENAME.pnm" > "$FILENAME.ps"
        FILELIST[$i - 1]="$FILENAME.ps"
done

gs -sDEVICE=pswrite "-sOutputFile=$FILENAME_BASE.ps" -dNOPAUSE -dBATCH "${FILELIST[@]}"
ps2pdf "$FILENAME_BASE.ps" "$2.pdf"

for f in "${FILELIST[@]}"; do
        rm "$f"
done
rm "$FILENAME_BASE.ps"

Just give it the number of pages to scan and the output file name to use (without .pdf). It will prompt you for each page to be ready (I don't have a document feeder), scan them, combine them and convert it all to a PDF.

It does have a number of dependency utilities, but I already had them all installed and this was only a quick hack so I've not made a list.

Add a comment