2012-05-24 155 views
1

我的應用程序從畫布上打印(WPF,C#),但應用程序需要分配一個默認打印機。默認打印機將保存爲PC上的.ini文件。概念是,工作人員可以點擊畫布上的打印按鈕,畫布會生成佈局,然後發送到打印機。從WPF中的畫布控件打印

因此,兩件事情我需要做的是:

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

回答