Correct approach for creating a Virtual XPS Printer?

I need to create a virtual XPS printer that shows up in windows (7 onwards) with a custom name and upon Print, it saves the .xps file to a specific folder (doesn’t ask User) OR transfer the .xps file to another user-mode application via Named-pipe.

I’ve seen various suggestions on how to do this e.g. port monitor w/MS universal driver, custom rendering plug-in, stream filter etc. However, I’m new to Printing so not sure which is the right approach?

Can anyone refer me to right source? I’m really struggling with this.