Currently, using the Wine supplied print dialog, printing to a file results in a file named "FILE:". In Windows (at least Win2k) a simple one line dialog box is put up where the filename can be typed in. I don't see a reason why a full Save As dialog would not be preferable; some programs override the standard dialog with a full Save As dialog.
It looks to me like the correct place to do this is in gdi/printdrv.c CreateSpoolFile(). So I have tried adding the attached patch to the function to play with, adding comdlg32 to the libraries in the makefile. But the call to GetSaveFileNameW(&ofn) crashes. I guess the first question is whether it is ok to call that from printdrv. And if so, is there an example of how to do it correctly?