I too use DOS under XP and have noticed that sometimes printing to a file and then spooling the file to the printer is a solution. But only sometimes. At least once under XP I have had to print (from a DOS program) to a file and then print the file from Windoze.
But first, open a DOS window. try screen print. does that work? try issuing PRINT command from DOS. does that work? If not, then something may be incorrectly defined to LPT1 or PRN1.