https://github.com/digitaltrails/punchedcardreader

This looks promising and fairly versatile. You could use the scanner but it seems like it would be much slower than a camera/phone camera. Also you can likely get a much better contrast with a camera if the cards are a light color, which will help.