I would suggest doPDF.
All of your XP apps "see it" as a 'printer' but what it does instead is create PDF files instead of actual printouts.
You put those on your USB and then do an actual printout from whatever that far-more-modern-printer is connected to.
98, SE, and ME do have VirtualAllocEx, only 95 doesn't. Use ImportPatcher or Dependency Walker to find all missing functions. If there are only a few, I can write a wrapper.