I found a very simple way to solve the above needs and it works well, and does not require any special support of any kind in the libraries or capturing EMF output from the spooler.
I just do the printing twice at the same time. When the application opens a printer, I silently also start a PDF. I re-use the device metrics of the printer device context to setup my pdf environment, so that all code calculating positions and sizes gives results valid for both print supports.
When a new page start, I have a win32 StartPage and a wpdfStartPage, and so on... Every TextOut, and other calls are simply doubled, on the printer DC and on the pdf DC. Fonts can be shared (selected both in the print DC and in the pdf DC at the same time), as well as some other resources. This is very convenient as I already had some generic methods encapsulating the gdi primitives. Of course, I play with paper bins/trays as requested by the app on the real print and simply ignores these for the pdf side. When I'm done closing the print job, I'm done closing the pdf file and that PDF file is inherently built as a visual clone of the direct printout. This is exactly what I was looking for in this forum thread and it is really simple.
This is actually a superb demonstration of how nicely the pdfControl acts as a gdi device context and how easy it is to migrate a common gdi printing source code to one doing pdf output.
I will now cleanup all these experiments and within some days I will order the needed commercial licenses.