GTK#:打印到非默认打印机

GTK#: Print to a non default printer

我正在通过 GTK# 使用 PrintOperation 对象打印页面,如下所示:

PrintOperation print = new PrintOperation();

print.BeginPrint += new BeginPrintHandler(OnBeginPrint);
print.DrawPage += new DrawPageHandler(OnDrawPage);
print.EndPrint += new EndPrintHandler(OnEndPrint);

print.Run(PrintOperationAction.Print, null);

结果:我的页面在系统默认打印机上静默打印。 到目前为止一切顺利。

如果我将最后一行替换为

print.Run(PrintOperationAction.PrintDialog, null);

我可以通过默认的打印机选择对话框选择打印机,并且页面会在所选打印机上打印。

我现在想做的是在另一台(= 非默认)打印机上静默打印文档,而不是从对话框中手动选择它(我的应用程序应该在后台打印而无需用户交互)。

我知道我的应用程序中的打印机名称,但是如何设置打印机,以便在没有用户交互的情况下在这台 "non default" 打印机上打印我的页面?

我又一次找到了答案:

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);