是/否打印机将打印的每页上都有对话框

时间:2018-01-15 16:03:08

标签: windows api printing hook print-spooler-api

我在打印机服务器上这样做。我正在尝试制作一个程序,在进行打印由任何应用程序或网络打印的页面之前显示“是/否”对话框。

到目前为止,暂停和恢复工作很容易。但是还没有找到暂停和恢复要打印的页面的解决方案。

作为参考,这里有更多关于在Windows上控制打印机的信息 https://msdn.microsoft.com/en-us/library/windows/desktop/ff686805(v=vs.85).aspx

我正在使用Windows 10 64位。任何语言都可以。

感谢。

1 个答案:

答案 0 :(得分:1)

我准备被证明是错的,但我不相信这是微不足道的。打印假脱机程序没有关于页面在假脱机打印会话中开始和结束的概念。

每个页面的位置都取决于语言,并且很难期望打印后台处理程序解析流以查找每个页面的开头和结尾,这对于一件事来说会非常慢。

另一种方法是让打印处理器记下每个页面的开头和结尾以及当时假脱机文件的偏移量,然后将这些信息分别传递给假脱机程序。

但也存在问题。 “RAW打印”功能允许打印应用程序将“东西”直接注入打印流,完全绕过打印处理器。例如,当打印到PostScript打印机时,这在页面布局应用程序中很常见,特别是在Windows上,因为在Windows上打印时不太可能支持CMYK,并且专色更难。

注入的代码可以包含任意数量的页面,并且打印后台处理程序无法知道每个页面的位置。

所以在一般情况下,我认为这不可能,至少在打印假脱机程序中不行。