即使启用了假脱机文件池,如何find具有给定ID的作业的假脱机文件?

我想将给定的Windows打印作业的假脱机数据复制到磁盘上的任意位置。

我有打印后台处理程序API的打印作业的作业ID。 我知道这个工作已经完成假脱机。 我知道,在我有时间完成我需要做的事情之前,这个工作不会被删除。

如果文件池被禁用,我可以通过在spool目录中查找格式为“xxxxx.spl”的文件来做到这一点,其中xxxxx是0填充的作业ID。

如果启用文件池,我该如何做到这一点?

如果有一种方法取得工作ID并返回了假脱机数据stream,我会很高兴,但在这一点上似乎不大可能。 据说类似的东西也许可以使用OpenPrinter的“PrinterName,Job xxxx”和ReadPrinter 这里logging ,但到目前为止我还没有能够得到它的工作 ,即使我这样做,它看起来像它加载数据到内存,我不知道这将如何处理大的假脱机文件(> 1 GB是不寻常的)。

我的第二个select是传入ID并返回磁盘上假脱机数据的文件位置(不pipe文件池设置)。

我的第三个select是将一个池文件(“FPyyyyy.spl”)映射到它的作业ID。

这些都是可行的吗?还是有人对如何解决这个问题有更好的了解?

(编辑添加,因为我们不清楚是否知道这个选项):我们的退步是要求我们的客户通过编辑每个打印机的registry来禁用假脱机文件池,但我们宁愿避免这种情况。

Solutions Collecting From Web of "即使启用了假脱机文件池,如何find具有给定ID的作业的假脱机文件?"