We are using a third-party software to produce and print certain business documents in the context of Microsoft BC. Due to particular requirements in Switzerland, we need page-level control over things like input tray selection which is solved in the third-party software by generating PostScript files with printer-specific control codes. Therefore, we don't print through the Windows printer drivers but usually talk to the printers directly (usually JetDirect/RAW or LPD/LPR protocols). In some cases we send the PostScript streams to the Windows Print spooler, bypassing the printer drivers. This works well for traditional printer drivers. However, with Microsoft Universal Print (afterwards shortened as UP), our tests have failed trying to pipe PostScript or PDF PDLs through UP. We get some unspecified error on the print queue windows for the printer. Normal printing through Windows applications works fine. So, it seems that piping through raw PDL streams to the printers is not currently supported by UP.
Please note that splitting the jobs into multiple jobs to multiple configurations for one printer is not a possible work-around in our case since there is no guarantee on the whole processing chain that the pages arrive at the printer in a predefined order. This is actually one reason why we are using a third-party software for many of our customers.
It seems that API-wise it should be possible to upload application/postscript or application/pdf through the Graph API to UP, but apparently only the internal XPS-based way seems to be supported going through the Windows priner subsystem. We have not yet attempted to use the Graph API directly to try to send application/postscript through to the printers. Maybe you could tell us whether this has a chance of working before we invest too much time here and run into another dead end. The creator of the third-party software above is willing to add a plug-in to his software to interact directly with Graph API but in order to get UP to work for us, our first attempt was to use the existing infrastructure (sending PDL streams to the spooler) which, as noted above, did not work out.