我的应用程序从画布(WPF、C#)打印,但应用程序需要分配一个默认打印机。默认打印机在 PC 上保存为 .ini 文件。这个概念是,工作人员可以点击我画布上的打印按钮,画布会生成一个布局,然后发送到打印机。
所以,我需要做的两件事是:
- 根据文本文件中的字符串设置默认打印机
- 装订后打印
单击打印按钮后,画布会更新为我想要的布局(通过数据绑定)并将作业发送到打印机(打印机检测到作业并显示在打印机队列中),但打印机从不打印文档。就好像我已经排队了一份工作,但从未说过“开始”。
然后我的佳能给了我一个错误(尽管这可能是红色的听力),即“另一台打印机正在使用该打印机。以下状态是该计算机的使用状态---”
这是我正在使用的两种主要方法。
internal void AutoPrint()
{
string printerName = GetPrinterNameFromTextFile();
PrintDialog dialog = new PrintDialog();
getView(); //queries database, returns model and binds
Print(dialog, config.PrinterName);
}
internal void Print(PrintDialog dialog, string printerName)
{
Canvas canvas = new Canvas();
canvas = this.PrintCanvas;
PrintQueue queue = new LocalPrintServer().GetPrintQueue(printerName);
dialog.PrintQueue = queue;
Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(delegate()
{
dialog.PrintVisual(canvas, "");
}));
}