Я из идеи, почему это не работает:printserver throwing «Ошибка Win32: имя принтера недопустимо». исключение, несмотря на пути сервера при условии правильно
PrintServer printServer = new PrintServer("\\\\servername");
Я имею вопрос с инициализацией PrintServer. Вышеупомянутое исключение продолжает появляться даже в том случае, если указан путь printerServer, это допустимый путь. Это говорит о том, что я могу перечислять все принтеры с помощью printServer.GetPrintQueues и запрашивать 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.
Перед этим стоит вопрос? Если да, могу ли я узнать, как решить эту проблему?
Миллион заранее.
EDIT:
Просто протестировано с другой «реальным» принтером сервера, выше метод работает отлично. Считается, что сервис Novell iPrint, который я не уверен, как его поведение вызывает проблему. Если кто-то знает больше о том, как получить доступ к серверу печати Novell iPrint с помощью C#, не стесняйтесь делиться. Я в настоящее время ищут решение .