Most printer drivers offer extended options for printing, e.g. printing multiple pages on one sheet. I'm not sure how such settings are applied to printing processes in .NET because there are no fields in PrinterSettings structures or so. Using PrintDocument in general for WinForms seems to work because these settings are applied. In Crystal Reports when using the printing function of the CrystalReportViewer these settings are applied too. But we are printing multiple reports at a time, so we cannot show every report in the viewer control and let the user print it. So we decided to use the PrintToPrinter method and then the problems started... All the driver specific settings that do not apply to the fields in PrintSettings class of .NET are lost and that's a big problem!
Is there any alternative to the PrinterSettings classes? My idea is using a similar way as the ReportViewer control, showing a printer settings dialog by itself and applying ALL settings internally and then attaching those settings to other reports so that no settings are lost anymore. Is there a solution? Is this supported? The support told me to look for a solution in this forum (I did not find one), then ask for a solution and if there is no solution at all try to make a feature request. We are using CR 2008 Basic and evaluated CR 2008 Trial, the problem relates to both versions and may be others too.
Our workaround to our customers is to add printers in system's control panel with all related settings pre-configured, so that our application only needs to set the printer name. But this results in multiple printers using the same driver and device and needs much more time to maintain and this is not the solution.