2012-06-26 73 views
5

我有一個.net 2.0應用程序(c#),其中一個組件作爲服務運行,另一個組件用於配置服務。如何判斷打印機是否打印到文件?

UI爲用戶提供了一種選擇服務器將使用的打印機的方法。

我希望UI過濾掉所有配置爲打印到文件的打印機,因爲這些pritner會導致服務出現問題(「另存爲」對話框將打開,但對話框因爲它屬於服務而不可見) 。

問題是我找不到任何方法來檢測設置爲打印到文件的打印機。

System.Drawing.Printing.PrinterSettings有一個名爲PrintToFile的屬性,但它總是設置爲false!

+1

而正版打印機可能會顯示「請加載更多紙張」 - 基本上,任何打印機*都可能*想顯示UI。 –

+0

是的,我的加農炮打印機喜歡彈出一些進度條和對話框 –

+0

此外,我相信大多數打印機都是以每個用戶爲基礎安裝的 - 而服務則傾向於在機器帳戶下運行 - 所以服務可能無法訪問打印機無論如何。 –

回答

1

PrinterSettings.PrintToFile只能由System.Windows.Forms.Printing.PrintDialog類設置。 「打印到文件」選項僅在System.Windows.Forms.Printing.PrintDialog.AllowPrintToFile屬性設置爲true時出現在System.Windows.Forms.Printing.PrintDialog中。

希望能夠解決您的問題。

+0

感謝您的建議,但它不能幫助我。我需要知道打印機是否已經通過打印機屬性配置爲打印到文件。在發送新的打印作業之前,我需要對此進行評估。此外,還有一些應用程序在那裏添加了一個虛擬打印機來打印PDF格式 - 我想知道我該如何檢測它們!從迄今爲止的反應來看,似乎無法完成。 – user1483326

+0

首先提出問題的第二部分:請使用'System.Drawing.Printing.PrinterSettings.installedprinters'屬性。它獲得已安裝打印機的集合。您可以使用已安裝打印機名稱的集合爲用戶提供打印的打印機選項。對於你的問題的第一部分,如果它適合你,請檢查PrinterSettings類。 – mrd

相關問題