【发布时间】:2013-03-15 17:57:36
【问题描述】:
我正在完成一个 Web 服务的构建,该服务构建并打印出 XPS 文档,并将它们发送到各种打印服务器上的各种打印队列。根据站点部署,Web 服务以 2 种模式运行。第一种是使用应用程序池身份帐户作为打印用户,第二种模式对“跟我来”类型的打印机使用用户模拟,以便用户注册打印作业。这一切都很好。
我必须针对打印队列上的特定托盘并为每个作业设置各种其他参数,因此我生成了 printickets,将托盘命名空间添加到 xml,这似乎也可以工作。
我担心的是这个(并且是我需要一些手的地方),因为我正在做所有这些 STA 线程服务器端,比如 Bob 在打印 200 个混合文档(A4、A5、信封)和票关闭说打印机上的双面打印,我的应用程序池身份帐户正在运行说 20 个打印线程,同时具有各种目标托盘的多个文档,具有各种参数,我会遇到任何问题还是会破坏默认打印机队列设置?
根据 MS 的说法,MergeAndValidatePrintTicket 的范围可以分为不同的级别(我会满足于工作级别),但我只是想知道是否有人有这种情况的经验可以验证这是真的,是否有任何问题,因为这整个.Net 打印恶意软件似乎充满了它们。
'lil 提示任何这样做的人。如果您的目标打印机很简单,比如只有 3 个不同尺寸的托盘,只需在票据中设置介质尺寸(ISOA4 或其他)并将输入箱设置为未知,打印机就会解决。不幸的是,我所针对的打印机有大约 7 个垃圾箱,所以我必须针对确切的托盘。
感谢阅读。
【问题讨论】:
-
这取决于您如何处理门票。如果你把票附在工作上,你就没事了。如果您在队列中设置票证,则不是。您有使用票证的示例代码吗?
-
嗨,乔恩...我将在工作级别确定范围,因此感谢您的保证。我明天重新编码。我有一个管理站点,可以扫描每个打印服务器的打印队列并提取该打印机的 bin 名称。当我这样做时,我想创建打印票并将所有这些信息存储在数据库中。我有一个映射表(即手动),指定介质尺寸、打印机类型和 bin 命名空间,我将在视图中加入打印机数据并将其加入到文档表中,因此 doc A4 -> A4 Lex ns0000:Tray 2 -> Lex ns0000:Tray 2 打印票。我将使用票超载的 .net 4.5 addjob。
-
空间不足...我将使用 queue.userPrintTicket 然后 validationResult.mergeAndValidatePrintTicket 然后希望使用这个具有 printticket 变量的 .Net 4.5 queue.addjob 重载。明天晚上(星期一)我会尝试弹出一些代码