我出了主意,爲什麼這不工作:printserver引發「Win32錯誤:打印機名稱無效。」儘管異常所提供的服務器路徑是正確的
PrintServer printServer = new PrintServer("\\\\servername");
我有打印服務器的初始化問題。即使提供的打印機服務器路徑是有效路徑,上述異常仍會出現。這是因爲我能枚舉所有打印機使用printerServer.GetPrintQueues和foreach printQueue獲得相應的HostingPrintServer名稱。
EnumeratedPrintQueueTypes[] queueTypesArray = new EnumeratedPrintQueueTypes[]
{
EnumeratedPrintQueueTypes.Connections,
EnumeratedPrintQueueTypes.Local,
};
PrintQueueIndexedProperty[] indexPropertyArray = new PrintQueueIndexedProperty[]
{
PrintQueueIndexedProperty.Name
};
PrintServer printServer = new PrintServer();
PrintQueueCollection queueCollection = printServer.GetPrintQueues(indexPropertyArray, queueTypesArray);
foreach (PrintQueue pq in queueCollection)
{
if (pq.FullName == printerName)
{
this.printServerName = pq.HostingPrintServer.Name;
this.printerName = pq.Name;
}
}
我一直在使用這個帖子建議,以獲得DNS hostEntry但沒有任何運氣的方式也試過。
PrintServerException - "...name is invalid" even though I can access the path from windows
爲了您的信息,我使用Visual Studio 2010,其中連接兩個網絡打印機在Windows XP上運行。打印機能夠使用PrintDocument執行打印而沒有任何問題,並且打印機也顯示在PrintDialog上。
之前是否有人遇到這個問題?如果是,我可否知道你如何解決這個問題?
百萬在此先感謝。
編輯:
只是另一種「真正的」服務器打印機進行測試,上述方法是工作的罰款。據我所知,Novell iPrint服務,我不知道它是如何導致問題的行爲。如果有人對使用C#訪問Novell iPrint打印服務器的方式有更多瞭解,請隨時分享。我目前仍在尋找 解決方案。