- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我不知道为什么这不起作用:
PrintServer printServer = new PrintServer("\\\\servername");
我在打印服务器初始化时遇到问题。即使提供的 printerServer 路径是有效路径,上述异常也会不断出现。之所以这样说,是因为我能够使用 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
供您引用,我使用的是在 Windows XP 上运行的 Visual Studio 2010,并连接了两台网络打印机。打印机能够使用 PrintDocument 毫无问题地执行打印,并且打印机也显示在 PrintDialog 上。
有没有人遇到过这个问题?如果是,请问您是如何解决这个问题的?
万分感谢
编辑:
刚刚用另一台“真正的”服务器打印机进行了测试,上述方法工作正常。据信 Novell iPrint 服务,我不确定它的行为是如何导致问题的。如果有人知道更多关于使用 C# 访问 Novell iPrint 打印服务器的方法,请随时分享。我目前仍在寻找解决方案。
最佳答案
嘿,我遇到了类似的问题,这是我观察到的并进行了以下更改,请尝试让我知道。
出现此问题的原因是系统缺少 Windows 功能/角色“打印和文档服务”。此角色是管理多台打印机或打印服务器以及将打印机迁移到其他 Windows 服务器或从其他 Windows 服务器迁移过来所必需的。
要添加角色,请转到控制面板->打开或关闭 Windows 功能->单击“打印和文件服务”复选框->安装。
如果您无法添加它,请与网络管理员联系以安装此规则。
添加角色后,您可以创建打印服务器对象并获取相应服务器上的所有打印队列。
关于c# - 尽管提供的服务器路径正确,打印服务器仍抛出 "Win32 error: The printer name is invalid."异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19585249/
我是一名优秀的程序员,十分优秀!