Reputation: 495
I'm printing pages via GTK# using a PrintOperation
object like this:
PrintOperation print = new PrintOperation();
print.BeginPrint += new BeginPrintHandler(OnBeginPrint);
print.DrawPage += new DrawPageHandler(OnDrawPage);
print.EndPrint += new EndPrintHandler(OnEndPrint);
print.Run(PrintOperationAction.Print, null);
Result: My page is silently printed on the systems default printer. So far so good.
If I replace the last line with
print.Run(PrintOperationAction.PrintDialog, null);
I'm able to choose a printer via default printer selection dialog and the page is printed on the selected printer.
What I'd like to do now is to print the document silently on another (= non default) printer without choosing it manually from the dialog (my application should print in background without user interaction).
I know the printers name in my application, but how can I set the printer that my pages are printed on this "non default" printer without user interaction?
Upvotes: 0
Views: 417
Reputation: 495
Again I found the answer myself:
PrintSettings settings = new PrintSettings();
settings.Printer = "MY SECONDARY PRINTER";
PrintOperation print = new PrintOperation();
print.PrintSettings = settings;
print.BeginPrint += new BeginPrintHandler(OnBeginPrint);
print.DrawPage += new DrawPageHandler(OnDrawPage);
print.EndPrint += new EndPrintHandler(OnEndPrint);
print.Run(PrintOperationAction.Print, null);
Upvotes: 0