- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建虚拟打印机。已经有一些答案,例如 this和 this .
但是我的要求更具体。我只想创建一个可以添加到系统中并可以从任何应用程序访问的虚拟打印机。单击打印命令时,会弹出一个看起来像真实打印机的对话框,并在打印时生成 PDF。然后执行更多操作,例如将 PDF 推送到我的服务器。
我需要深入了解 Windows 驱动程序工具包吗?或者有没有免费的 SDK?
谢谢。
最佳答案
不确定这个问题是否仍然与您相关,但您可能想考虑这样的事情:
使用 WDK(Windows 驱动程序工具包)创建 Unidrv UI plugin 。这将允许您在打印期间指定 UI(用于打印机对话)。您想要在此处显示 UI 的原因是因为它是在用户 session (与打印应用程序相同的进程)中运行的唯一打印机驱动程序组件之一。 XPS管道和端口监视器都是 session 0。
如果您想遵循 MS 约定,您可以在 XPS Filter pipeline 的渲染过滤器中将假脱机文件转换为 PDF。 (这是如果您使用 XPSDrv driver )。在过滤器管道中,您有机会修改传入和最终过滤器中的 XPS 假脱机数据,将其转换为您的输出文档类型(在您的情况下为 PDF)。
要进行打印后处理,您可能需要考虑创建 port monitor (再次使用 WDK)并在端口监视器将打印输出写入磁盘后启动一个新进程来执行打印后处理。
此方法的唯一问题是您无法在版本 4 驱动程序中使用端口监视器(这是 Windows 8 中的新型驱动程序)。版本 3 驱动程序仍然可以在 Win 8 中工作,但我猜它们最终会被淘汰。
抱歉,这可能不是很明显,但正如我所说,这是一个高级概述(不幸的是,驱动程序开发仍然非常复杂,超出了简单的打印到文件的范围)。版本 4 打印机驱动程序的开发变得更加容易,但不幸的是,随着端口监视器支持的删除和其他改进,开发任何需要后期处理的内容变得更加困难。
[免责声明:我与 Mako SDK 研发团队有联系]
我知道您要求免费的 SDK,不幸的是我不知道有什么合适的,但我知道我们公司提供了一个虚拟打印机平台 (SDK),这对您有好处(打印为 PDF 并支持打印后处理) )。您可以在 Mako SDK website 找到更多信息
无论如何,希望这能有所帮助。我知道打印机驱动程序开发有时会非常困惑!
关于driver - 如何搭建虚拟打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640070/
我正在尝试获取此亚马逊页面中列出的每台笔记本电脑的图像 URL ( https://www.amazon.com/s?rh=n%3A565108%2Cp_72%3A4-&pf_rd_i=565108&
我正在设置 Atlassian Confluence,在选择数据库时,我在选择“使用外部 Mysql 数据库”时卡住了我看过一些教程,但对我来说,它并没有按照应有的方式工作。我使用 ubuntu 12
我是 Neo4J 的新手,正在尝试通过 java 连接到 Neo4J 服务器。 我的一个独立项目的pom入口如下: org.neo4j neo4j-o
所有这些有什么区别和用途? spark.local.ip spark.driver.host spark.driver.bind地址 spark.driver.hostname 如何将机器修复为 Sp
我在旧的 Inspiron 6400 计算机(GeForce 7300 笔记本电脑版)上安装了 Lubuntu 19.04,通过网络草稿编辑器教我儿子 Scratch。每次我通过 Firefox 打开
我使用 qt 开发了一个 c++ 库。在本文中,我使用 QSqlDatabase 从 SQLite 数据库中查询信息。注意:我的库在 qt 桌面应用程序中运行良好(我在 Linux 上开发)。 现在我
存在类似的问题,但没有帮助。 在 Apache 2.4 上安装 php5-fpm 通过 SSL 连接到远程 MySql 数据库。 可以通过命令行连接MySQL mysql -u myname -p'p
使用以下配置 (doctrine.yaml) 在 Symfony 4 中使用 Doctrine DBAL: dbal: # configure these for your database
使用以下配置 (doctrine.yaml) 在 Symfony 4 中使用 Doctrine DBAL: dbal: # configure these for your database
我有一个用 Java 编写的 Selenium Web 驱动程序测试,目标是 Liferay 站点。 // Login driver.get(baseUrl + "/"); driver.findEl
在driver.findElements()中,我们获得了另一个用于查找size()的函数,该函数在driver.findElement()中不可用。 这是唯一的区别吗? 最佳答案 driver.fi
这个问题已经有答案了: java.lang.IllegalStateException: The driver executable does not exist: while trying to e
简短描述:我有一个通过 SignTool 验证的签名驱动程序,但 Windows 拒绝加载它并出现错误:CodeIntegrity 3004 - 在系统上找不到文件哈希。我该如何解决这个问题? 详细说
我正在设置一些 Geb 测试,但出现“geb.driver.DriverCreationException:无法从回调创建驱动程序”错误。 Geb 将尝试启动测试浏览器窗口,但一旦启动,我的所有测试都
我想通过应用对象存储库概念在 Chrome 驱动程序中打开 url。下面给出的是我的 selenium 程序,其中包含两个文件,一个是 testng 文件,另一个是 config.property 文
我在 Ubuntu Linux、Spring Tools 2.7.1、Spring Roo 1.1.5 上运行 Eclipse Indigo。我正在阅读 Getting Started with Ro
打开 Url 的首选方法是什么(它们之间是否存在任何差异): driver.Url = "http://example.com"; 或 driver.Navigate().GoToUrl("http:
我使用 python 脚本传递给 cassandra 批处理查询,如下所示: query = 'BEGIN BATCH ' + 'insert into ... ; insert into ... ;
我在 Protractor 中执行脚本时出现以下错误。 System info: host: '8888', ip: '88888', os.name: 'Mac OS X', os.arch: 'x
我收到错误 KeyError:'driver'。 我想使用scrapy-selenium 创建一个网络爬虫。我的代码如下所示: class TestSpider(Spider): name="test
我是一名优秀的程序员,十分优秀!