You can try this:
Set up your application to print to LPT1: (or an unused LPT port on your system.)
Turn on printer pooling, so that the printer resides on BOTH lpt1 and the USB port.
When the application goes to print to LPT1 (assuming it does it properly, and not with hardware calls), Windows will think that the LPT port is busy (since there's nothing connected to it) and re-direct to the USB port instead.
Just my $0.02
"In order to start solving a problem, one must first identify its owner." --Me
--Greg