Dear all,
I am using the following code to render and print a report from a windows service running on Windows 2008 R2.
StiReport stiReport = new StiReport();
stiReport.LoadFromString(report.Design);
stiReport.Render();
stiReport.Print(false, new PrinterSettings() { PrinterName = printerName});
Works great and fast (3 sec.) with locally installed printer (drivers) but when the printer name is something like \\ps02\Printer01 and the printer is not installed locally then:
spoolsv.exe, will increase the cpu with 30% and it will take at least 45sec. to 1m:30 to create a print job on the printer server.
Looking at the amount of data it looks like it is rendered to printer pixels on the application server where the reporting is running and then sent to the print server where it is sent straight to the printer.
We have tried turning of the Client Side Rendering flag on the server but it has no effect. Also the hotfix available in windows has no effect!
The complete environment is running in a virtual terminal server environment
When the printer server is a 2003 server Client Side Rendering can not even be selected and then we get a window print service error: unable to install driver.
So it looks like a driver is tried to be installed. Why is that done?
What we want to achieve that the printing sends a high level file (e.g. PCL or PS, EMF ) to the print server where it needs to be rendered. This means the client is free for other application tasks. We also do not want to install 10 printer drivers on each of the servers. That is why you have print server right?
Do you have any insights on this as when a printer driver is needed / used?
Is the call to Print doing anything special inside the stimulsoft application or it is straight handed of the Windows printing?
We are using 2012.3.1500.0. if that is of any influence
Other info is that rendering and writing to PDF is Always fast so it is not the rendering process.
Thanks in advance,
Johan Hazendonk
Printing to/through a PrintServer
-
- Posts: 4
- Joined: Wed Dec 18, 2013 1:08 pm
Re: Printing to/through a PrintServer
Hello.
Please, try to replace network name of the machine with the IP-address.
Also you could try to set next option:
Thank you.
Please, try to replace network name of the machine with the IP-address.
Also you could try to set next option:
Code: Select all
StiOptions.Print.AllowUsePaperSizesFromPrinterSettings = false;