1

我的应用程序从画布(WPF、C#)打印,但应用程序需要分配一个默认打印机。默认打印机在 PC 上保存为 .ini 文件。这个概念是,工作人员可以点击我画布上的打印按钮,画布会生成一个布局,然后发送到打印机。

所以,我需要做的两件事是:

  1. 根据文本文件中的字符串设置默认打印机
  2. 装订后打印

单击打印按钮后,画布会更新为我想要的布局(通过数据绑定)并将作业发送到打印机(打印机检测到作业并显示在打印机队列中),但打印机从不打印文档。就好像我已经排队了一份工作,但从未说过“开始”。

然后我的佳能给了我一个错误(尽管这可能是红色的听力),即“另一台打印机正在使用该打印机。以下状态是该计算机的使用状态---”

这是我正在使用的两种主要方法。

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, "");
            }));
}
4

1 回答 1

0

好的,我在其他地方问了一个不同的问题,但在源代码中提供了答案: C#printing with WPF

于 2012-07-09T12:26:57.957 回答