So you write that feature off – the ADF still works in simplex mode, right? Usually they do. So you scan one side of your stack and then the other side. If you’re using a directly-connected scanner and a program like Acrobat, you’ve got the benefit of a duplexing mode that will take care of collating and ordering the pages to mirror the original document. If you’re scanning directly to a stack of image files, either because you’re using a network scanner that can only do that, you want to massage the images before sticking them into Acrobat or you’re just using a different set of tools altogether, you’ll need to rename the two sets of files (“front” and “back,” aka “odd” and “even”) into one sequential set to feed in proper order into your favorite PDF-maker.
That’s where I was tonight, so I’ve written a VBscript to do the job. IrfanView has a batch mode which will do this but I found setup too tedious and too easy (for me) to make mistakes. This problem has surely been solved many times over but my google searches for extant examples were in vain tonight (mainly hindered by the number of “(web)page scanning scripts” out there.) I make no claims at any talent for scripting, whether in VBscript or any other tongue, but I’ve got something that does the job. If you can use it – or better yet, modify it for your needs – have at it:
‘ scanfix.vbs
‘ 01/28/2014 chiclassiccomp.org
‘ Takes two sets of image files scanned as front and back pages and arranges them in order for import into Acrobat
‘ Assume that the back pages were scanned in reverse order (flipping over the stack without re-ordering)
‘ Instructions: create three directories “odd,” “even” and “final.” Put odd (front) and even (back) pages in appropriate directory.
‘ Output is copied to “final.” Files are assumed to be using the TIF extension. Change the two “oname = ” lines if you’re using a different extension.
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
OddFolder = “odd”
EvenFolder = “even”
FinalFolder = “final”
ocount = 0
ecount = 0
‘ Count odd files
Set objFolder = objFSO.GetFolder(OddFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
ocount=ocount+1
Next
wscript.Echo “There are ” & ocount & ” odd files”
‘ Count even files
Set objFolder = objFSO.GetFolder(EvenFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
ecount=ecount+1
Next
wscript.Echo “There are ” & ecount & ” even files”
‘ Make sure they match
if ocount = ecount then
wscript.Echo “File counts match. Proceeding with copy and rename…”
else
wscript.Echo “File counts don’t match!”
wscript.quit
end if
‘ Copy odd files to final dir and rename them properly
set objFolder = objFSO.GetFolder(OddFolder)
set colFiles = objFolder.Files
set filesys=CreateObject(“Scripting.FilesystemObject”)
fcount=1
For Each objFile in colFiles
oname = “finalfinal” & fcount & “.tif”
filesys.copyfile objfile,oname
‘ wscript.echo objfile & ” ” & oname
fcount = fcount + 2
Next
‘ Copy even files to final dir and rename them properly
set objFolder = objFSO.GetFolder(EvenFolder)
set colFiles = objFolder.Files
set filesys=CreateObject(“Scripting.FilesystemObject”)
fcount=ocount*2
For Each objFile in colFiles
oname = “finalfinal” & fcount & “.tif”
filesys.copyfile objfile,oname
‘ wscript.echo objfile & ” ” & oname
fcount = fcount – 2
Next
* Some things I (or you!) may want to add:
– Padding the final filenames with leading zeroes to ensure proper ordering (so file10 doesn’t come before file2, etc.)
– Checking for the odd/even/final directories and making them if they’re not there. There’s no reason for the user to have to do this.