Boardwish
Boardwish

Reputation: 495

GTK#: Print to a non default printer

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

Answers (1)

Boardwish
Boardwish

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

Related Questions