从WPF中的画布控件打印

时间:2012-05-24 19:24:23

标签: c# printing printqueue

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

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

  1. 根据文本文件中的字符串设置默认打印机
  2. 装订后打印
  3. 单击打印按钮后,画布将以我想要的布局更新(通过数据绑定)并将作业发送到打印机(打印机检测到作业并显示在打印机队列中),但打印机从不打印该文件。这几乎就好像我排队了,但从未说过“开始”。

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

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

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

1 个答案:

答案 0 :(得分:0)

好的,我问了一个不同的问题,但是提供了答案的源代码: C# printing with WPF