An alternative solution, if you dont need to read all 16 pins at the same instant, is to use a HEF4067 16:1 multiplexer.
Use the parallel port pins 2 thru 5 to address the HEF4067 and either pin 10 or 11 to read the input data.
Dont connect a 9V source directly to the HEF4067 data i/o pins, use a resistive divider 9V down to 5v