RE:IMPRIMIR POR EL PUERTO USB
Depende del sistema operativo que estés usando.
Si es Win XP professional, o NT server es bastante fácil compartiendo la impresora y redireccionándo el puerto LPT2, LPT3 o LPT4 hacia el recurso compartido (Desde consola escribe NET HELP, y verás cómo hacerlo).
Si es Win 9X es un poco más complicado. Si la tienes en red, puedes accederla desde otra estación igual que en el caso de XP. Pero si no es así, deberás tener una impresora que venga con algún capturador de LPT1 a USB. Las HP láser las tienen, pero no sé de otras. Además envían cada línea de impresión como un trabajo independiente y esto hace que se vaya una página por línea. Para solucionarlo, mete el trabajo de impresión en un archivo de texto temporal, y luego ejecuta un COPY ARCHTMP.TXT LPT1 (Asumiendo que tu archivo temporal es ARCHTMP.TXT), ya sea con una instrucción RUN, o desde un archivo .BAT.
No he probado aún, pero tal vez puedas compartir en win 9x la impresora y USB y luego usar el mismo COPY para envia el temporal al recurso compartido. Si te funciona me cuentas.