【问题标题】:Is PrintSystemJobInfo.JobStream broken?PrintSystemJobInfo.JobStream 是否损坏?
【发布时间】:2010-01-11 13:38:44
【问题描述】:

我从目标打印机获取队列并浏览其上的作业列表。当作业不是 IsSpooling 时,我会尝试读取 JobStream 以查看打印作业。

到目前为止,JobStream 一直为空。我打印的东西来自 DOS 应用程序,应该是纯文本。我已暂停打印机以保护雨林,但我应该仍然能够获取假脱机数据,对吧?

是我遗漏了什么,还是 PrintSystemJobInfo.JobStream 坏了?

【问题讨论】:

  • 我还没有找到解决方案,但如果/当我找到了,我会发布。

标签: c# .net printing


【解决方案1】:

这个值几乎总是为空。参考这个论坛帖子:http://www.vbforums.com/showthread.php?t=549634

如果您想要实际的二进制 JobStream,最好的办法是从“C:\Windows\System32\spool\PRINTERS”目录中读取假脱机文件 (.SPL)。您可以在打印之前暂停作业,或者按照链接论坛帖子中的说明设置“保留打印作业”设置。不过请注意,这些数据有多种格式,具体取决于创建假脱机文件的驱动程序和启动打印的应用程序。从此流中提取数据并非易事,因为它将从打印机驱动程序更改为打印机驱动程序。如果您使用 1 台已知打印机,那么您可能会成功。

【讨论】:

  • JobStream 似乎为空,即使使用 Win32 API 读取打印作业工作正常(因为打印机是双向的,或者因为作业在假脱机程序的队列中尚未发送)。要阅读它,请使用OpenPrinter("PrinterName, Job JobID"),然后在该句柄上使用ReadPrinter
猜你喜欢
  • 2012-04-13
  • 1970-01-01
  • 2021-11-28
  • 2011-01-28
  • 2013-12-02
  • 2011-02-15
  • 1970-01-01
  • 2010-09-08
  • 2011-10-29
相关资源
最近更新 更多