好的..经过大量测试后,注意到以下内容(并且可能对其他人有帮助)。
在回答上述问题.. 1)嵌入字体确认并使用MS官方测试XPS文件。这没有帮助。2) 使用的 Lexmark 驱动程序是 winprint > RAW。改变这个没有帮助。2) 字体已安装在打印机上
测试 1) 新的打印服务器,直接打印到锐利的打印机上。问题出现在字体丢失。解决此问题的方法是将后台处理程序设置更改为仅在打印所有文档后才打印。问题消失了,但是我不想依赖配置需要专业设置的打印机的人,所以我拒绝了。这是客户的网络,我无法控制它。
2)打印到打印服务器上的现有 Web 服务(使用用户模拟)到 Sharp 队列,以确认这仍然有效。确认的。
3)打印到打印服务器上的现有 Web 服务(使用用户模拟)到 Lexmark 队列,这仍然失败并且字体丢失。
4) 从 2 个单独的 IIS 框打印到打印服务器到 Lexmark 队列(使用域应用程序池身份帐户),现在这可以正常工作(在 c# new printserver(\printerservername) 中),因为 Lexmark 打印正确。
5)打印到打印服务器上的现有 Web 服务(使用域应用程序池身份帐户)到 Lexmark 队列,这仍然失败(在 c# new localprintserver() 中)。
6)打印到打印服务器上的现有 Web 服务(使用域应用程序池身份帐户)到 Lexmark 队列,这仍然失败(在 c# new printserver(\printerservername) 中)
所有这一切的结果是,如果您在本地打印,字体会由于某种奇怪的原因丢失,但如果您远程打印,字体会被保留。所有服务器都具有相同的基本设置(没有 xps 查看器等,域应用程序池帐户是服务帐户),我能看到的唯一区别是新的 localprintserver 与新的 printserver(\printservername) 调用。相同的代码通过保存本地或远程设置的 Web 配置文件从一台机器移植到另一台机器。所有机器都有 IIS 7.5 .net 4.5 MVC 4 并且在受信任区域中。
所以我的解决方案将被拆分,非 Sharp 打印将在打印服务器服务远程的文档生成器上执行,Sharp 打印将在打印服务器上完成(这是 Equitrac“跟随我”打印所必需的),因为我没有不想使用 kerberos 委托。如前所述,这不是我的域,我可以看到整个地方因 spn 丢失或 kerberos 故障而停止打印。
无论如何,希望这对某人有所帮助。