2013-03-03 186 views
0

我們正在使用Visual Studio 2008將使用Visual Basic 6構建的傳統Windows窗體應用程序遷移到.NET Framework 3/3.5中,作爲持續需求的一部分。 有一個要求:獲取打印機列表。打印機存在於網絡上的遠程位置。如果用戶選擇打印機,則系統應該能夠將水晶報告打印到該特定打印機。我使用水晶報表查看器預覽報表,但一旦我在水晶報表查看器中調用報表,還應該將報表發送到網絡上打印機下拉列表中選擇的打印機。我如何能夠打印到網絡上的遠程打印機?我使用c#和vs 2008來實現這一點,作爲req的一部分。調用報告後在遠程打印機上打印

回答

0

我所做的是:

  • 手動管理的網絡打印機名稱的列表(\服務器\ PRINTER1,\服務器\ PRINTER2等),通過數據庫查詢,XML文件,或什麼的。
  • 在客戶端頁面上,呈現打印機的下拉列表並添加一個「打印」按鈕。
  • 直接在這些控件下面,渲染沒有標準打印/導出選項的Crystal Viewer。
  • 當客戶端提交表單/頁面時,根據下拉打印機ID進行服務器端打印。

對於使用在IIS下運行的免費Crystal運行時的服務器端打印,您有2個選項。

  1. 舊的,不推薦的方式:reportDocument.PrintToPrinter({printer settings}, {page settings}, {reformat})。您在{打印機設置}中傳遞打印機名稱。

  2. 的首選方法:printOutputController.PrintReport({print options})

注意:打印機名稱是大小寫敏感的在方法2中,並且必須將其安裝使得其在System.Drawing.PrinterSettings.InstalledPrinters()爲用戶顯示出來運行.NET過程。