windows 假脱机程序究竟如何决定要发送给打印处理器的数据类型?
How exactly does the windows spooler decide what data type it's going to send to the print processor?
例如,如果您想在 EMF 中进行假脱机处理,通常有效的方法是滴答 "Advanced printing features"。但是,我注意到在某些打印机驱动程序上这不起作用(这并不意外,v3 驱动程序并不强制支持它)。事实上,我注意到在一个驱动程序上,设备相关的设置(即在 DEVMODE 结构的额外结束块中)决定了假脱机文件是否出现在 EMF 中。那么后台打印程序如何确定要传递的数据类型?
我查看了打印驱动程序 DDI 函数和结构,但找不到任何与此相关的内容。在 DrvDeviceCapabilities
中有一个 DC_EMF_COMPLIANT
标志,但这仅适用于 Windows 95. 假脱机程序如何在以后的系统上执行此操作?
经过多次搜索,我发现驱动程序强制后台处理程序使用 RAW 的充分(但可能不是必需的)条件。如果调用 DrvEscape
查询对 METAFILE_DRIVER
和驱动程序 returns 0 的支持,那么不管怎样,假脱机程序都会直接假脱机到原始状态。我发现的驱动程序就是这种情况。
例如,如果您想在 EMF 中进行假脱机处理,通常有效的方法是滴答 "Advanced printing features"。但是,我注意到在某些打印机驱动程序上这不起作用(这并不意外,v3 驱动程序并不强制支持它)。事实上,我注意到在一个驱动程序上,设备相关的设置(即在 DEVMODE 结构的额外结束块中)决定了假脱机文件是否出现在 EMF 中。那么后台打印程序如何确定要传递的数据类型?
我查看了打印驱动程序 DDI 函数和结构,但找不到任何与此相关的内容。在 DrvDeviceCapabilities
中有一个 DC_EMF_COMPLIANT
标志,但这仅适用于 Windows 95. 假脱机程序如何在以后的系统上执行此操作?
经过多次搜索,我发现驱动程序强制后台处理程序使用 RAW 的充分(但可能不是必需的)条件。如果调用 DrvEscape
查询对 METAFILE_DRIVER
和驱动程序 returns 0 的支持,那么不管怎样,假脱机程序都会直接假脱机到原始状态。我发现的驱动程序就是这种情况。