Code running on the server has no access to devices connected to the client.
Code running on the client has extremely limited access to the client's hardware. You
might be able to use
getUserMedia[
^] to access the scanner, but I don't have a scanner to test it with.
Unsurprisingly, the few pre-built libraries Google was able to find which claim to support scanning from JavaScript all cost money, varying between
$WTF-How-Much?! and
$OMG-No-Way-LOL! per site. Since your budget is limited, it's unlikely that any of these will be within reach.