<分区>
我想创建一个虚拟打印机,将数据传递到我的 .NET 应用程序。然后我想创建一个安装程序来安装打印机和 .NET 应用程序。如果能够用 C# 编写这一切我们真的很高兴,但我感觉这将需要一个打印机驱动程序来编写非托管代码。有谁知道如何执行此操作的相当简洁的教程或示例?
<分区>
我想创建一个虚拟打印机,将数据传递到我的 .NET 应用程序。然后我想创建一个安装程序来安装打印机和 .NET 应用程序。如果能够用 C# 编写这一切我们真的很高兴,但我感觉这将需要一个打印机驱动程序来编写非托管代码。有谁知道如何执行此操作的相当简洁的教程或示例?
最佳答案
使用 Github 项目完全按照您的要求进行操作:Microsoft/Windows-driver-samples/print/XPSDrvSmpl
https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl
应用:监听内部端口
流程:从单个安装程序安装打印机和应用程序。当应用程序监听内部端口时,用户使用您的驱动程序打印一些东西。发送数据时,应用程序将其拾取。这是针对 XPS 的,可以转换为 PDF,但是无论您打印什么,流程都是相似的。如果您需要任何其他信息,请查看 GitHub 上的 Microsoft/Windows-driver-samples/print/或其他特定于您需求的来源。
更新:
很多关于如何让驱动程序工作的问题,所以这里是一个简单的例子:
如果您尚未安装 Windows 驱动程序工具包 (WDK),请先下载它。安装时选择在最后一步添加 Visual Studio 的扩展。在您的 Visual Studio 2017 安装中,您需要有 Desktop development with C++
拥有正确的 SDK。如果您没有它,请参阅下面关于如何添加它的答案。
How do I add features to Visual Studio 2017?
https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit
然后下载 .zip
Windows 驱动程序示例主文件:
https://github.com/Microsoft/Windows-driver-samples/archive/master.zip
导航到文件夹 <UnzipFolder>\print\XPSDrvSmpl
并打开 XPSDrvSmpl.sln
在 Visual Studio 中。
然后按照 Microsoft 在 GitHub 上的指南进行操作。如您所见,它适用于 Visual Studio 2015,但我认为它适用于 2017 年(尚未测试):
要使用 Windows Driver Kit (WDK) 10 和 Visual Studio 2015 构建驱动程序解决方案,请执行以下步骤。
此时,Visual Studio 2015 将能够构建驱动程序包并将文件输出到磁盘。要配置驱动程序签名和部署,请参阅开发、测试和部署驱动程序。
https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl#build-the-sample
关于.net - 在 .NET 中编写虚拟打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29538232/