0

我想通过打印驱动程序将文档发送到我的 Windows 应用程序。为了实现我构建 v4 打印驱动程序并能够在打印选项中获取驱动程序的功能。现在我想从打印驱动程序打开 Windows 应用程序。我无法找到连接方式。 打印选项 附上截图供您参考。在“打印”按钮上,我想在打印机选项中选择我的打印机驱动程序后打开我的 Windows 应用程序

4

1 回答 1

0

从您的应用程序中,您无法直接连接到您的驱动程序。Windows 不允许这样做。驱动程序将由打印后台处理程序服务调用,而不是由任何应用程序直接调用。但是,一旦您的驱动程序接收到打印数据,它就可以通过进程间通信与您的应用程序通信。

当您从任何应用程序打印文档时,应用程序通过调用 Windows API 提交打印作业,Windows spooler 会生成 XPS(取决于驱动程序和打印处理器)格式的假脱机数据并将其发送到您的驱动程序(假设您的驱动程序基于XPSDrv驱动程序),您的驱动程序处理数据或保存数据或将其写回假脱机程序,假脱机程序将使用特定端口监视器将数据发送到打印机。您可以截取假脱机数据(XPS 或 PDF)并将其用于您的目的。这是一种数据流路径:[![在此处输入图像描述][1]][1]

Spooler 生成的假脱机数据主要是 .OXPS 或 .XPS 格式,这是您在驱动程序中收到的格式,您可以将其保存到某个地方并通过进程间通信将消息发送回您的应用程序。[1]:https ://i.stack.imgur.com/tVHEW.png

于 2021-12-03T07:18:22.210 回答